From fa117198a063de954fd5d9eeb7d644ed40152c0e Mon Sep 17 00:00:00 2001 From: Owen Date: Thu, 23 Apr 2026 14:05:08 -0700 Subject: [PATCH 001/131] Pass one at getting it into the db --- messages/en-US.json | 2 + server/db/pg/schema/schema.ts | 3 +- server/db/sqlite/schema/schema.ts | 3 +- server/lib/billing/tierMatrix.ts | 6 +- server/lib/blueprints/proxyResources.ts | 30 +++++- server/lib/blueprints/types.ts | 29 ++++++ server/lib/domainUtils.ts | 67 ++++++++++--- server/lib/schemas.ts | 36 +++++++ server/routers/resource/createResource.ts | 29 +++++- server/routers/resource/updateResource.ts | 36 ++++++- src/components/DomainPicker.tsx | 114 +++++++++++++++++++--- src/lib/subdomain-utils.ts | 66 ++++++++++++- 12 files changed, 377 insertions(+), 44 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index e85eff9e7..8218cf8d3 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -1947,6 +1947,8 @@ "httpMethod": "Scheme", "selectHttpMethod": "Select scheme", "domainPickerSubdomainLabel": "Subdomain", + "domainPickerWildcard": "Wildcard", + "domainPickerWildcardPaidOnly": "Wildcard subdomains are a paid feature. Please upgrade to access this feature.", "domainPickerBaseDomainLabel": "Base Domain", "domainPickerSearchDomains": "Search domains...", "domainPickerNoDomainsFound": "No domains found", diff --git a/server/db/pg/schema/schema.ts b/server/db/pg/schema/schema.ts index 30dfef353..473d0f852 100644 --- a/server/db/pg/schema/schema.ts +++ b/server/db/pg/schema/schema.ts @@ -158,7 +158,8 @@ export const resources = pgTable("resources", { maintenanceMessage: text("maintenanceMessage"), maintenanceEstimatedTime: text("maintenanceEstimatedTime"), postAuthPath: text("postAuthPath"), - health: varchar("health") // "healthy", "unhealthy" + health: varchar("health"), // "healthy", "unhealthy" + wildcard: boolean("wildcard").notNull().default(false) }); export const targets = pgTable("targets", { diff --git a/server/db/sqlite/schema/schema.ts b/server/db/sqlite/schema/schema.ts index 0f0844d2f..6a24ac8dd 100644 --- a/server/db/sqlite/schema/schema.ts +++ b/server/db/sqlite/schema/schema.ts @@ -179,7 +179,8 @@ export const resources = sqliteTable("resources", { maintenanceMessage: text("maintenanceMessage"), maintenanceEstimatedTime: text("maintenanceEstimatedTime"), postAuthPath: text("postAuthPath"), - health: text("health") // "healthy", "unhealthy" + health: text("health"), // "healthy", "unhealthy" + wildcard: integer("wildcard", { mode: "boolean" }).notNull().default(false) }); export const targets = sqliteTable("targets", { diff --git a/server/lib/billing/tierMatrix.ts b/server/lib/billing/tierMatrix.ts index 5ae57c8a7..3393dd324 100644 --- a/server/lib/billing/tierMatrix.ts +++ b/server/lib/billing/tierMatrix.ts @@ -23,7 +23,8 @@ export enum TierFeature { HTTPPrivateResources = "httpPrivateResources", // handle downgrade by disabling HTTP private resources DomainNamespaces = "domainNamespaces", // handle downgrade by removing custom domain namespaces StandaloneHealthChecks = "standaloneHealthChecks", - AlertingRules = "alertingRules" + AlertingRules = "alertingRules", + WildcardSubdomain = "wildcardSubdomain" } export const tierMatrix: Record = { @@ -64,5 +65,6 @@ export const tierMatrix: Record = { [TierFeature.HTTPPrivateResources]: ["tier3", "enterprise"], [TierFeature.DomainNamespaces]: ["tier1", "tier2", "tier3", "enterprise"], [TierFeature.StandaloneHealthChecks]: ["tier2", "tier3", "enterprise"], - [TierFeature.AlertingRules]: ["tier2", "tier3", "enterprise"] + [TierFeature.AlertingRules]: ["tier2", "tier3", "enterprise"], + [TierFeature.WildcardSubdomain]: ["tier1", "tier2", "tier3", "enterprise"] }; diff --git a/server/lib/blueprints/proxyResources.ts b/server/lib/blueprints/proxyResources.ts index 175c8c79f..136fa1545 100644 --- a/server/lib/blueprints/proxyResources.ts +++ b/server/lib/blueprints/proxyResources.ts @@ -1,5 +1,6 @@ import { domains, + domainNamespaces, orgDomains, Resource, resourceHeaderAuth, @@ -236,6 +237,7 @@ export async function updateProxyResources( fullDomain: http ? resourceData["full-domain"] : null, subdomain: domain ? domain.subdomain : null, domainId: domain ? domain.domainId : null, + wildcard: domain ? domain.wildcard : false, enabled: resourceEnabled, sso: resourceData.auth?.["sso-enabled"] || false, skipToIdpId: @@ -683,6 +685,7 @@ export async function updateProxyResources( fullDomain: http ? resourceData["full-domain"] : null, subdomain: domain ? domain.subdomain : null, domainId: domain ? domain.domainId : null, + wildcard: domain ? domain.wildcard : false, enabled: resourceEnabled, sso: resourceData.auth?.["sso-enabled"] || false, skipToIdpId: resourceData.auth?.["auto-login-idp"] || null, @@ -1152,7 +1155,9 @@ async function getDomainId( orgId: string, fullDomain: string, trx: Transaction -): Promise<{ subdomain: string | null; domainId: string } | null> { +): Promise<{ subdomain: string | null; domainId: string; wildcard: boolean } | null> { + const isWildcardFullDomain = fullDomain.startsWith("*."); + const possibleDomains = await trx .select() .from(domains) @@ -1165,6 +1170,11 @@ async function getDomainId( } const validDomains = possibleDomains.filter((domain) => { + // Wildcard full-domains are not allowed on CNAME domains + if (isWildcardFullDomain && domain.domains.type === "cname") { + return false; + } + if (domain.domains.type == "ns" || domain.domains.type == "wildcard") { return ( fullDomain === domain.domains.baseDomain || @@ -1182,6 +1192,21 @@ async function getDomainId( const domainSelection = validDomains[0].domains; const baseDomain = domainSelection.baseDomain; + // Wildcard full-domains are not allowed on namespace (provided/free) domains + if (isWildcardFullDomain) { + const [namespaceDomain] = await trx + .select() + .from(domainNamespaces) + .where(eq(domainNamespaces.domainId, domainSelection.domainId)) + .limit(1); + + if (namespaceDomain) { + throw new Error( + `Wildcard full-domains are not supported for provided or free domains: ${fullDomain}` + ); + } + } + // remove the base domain of the domain let subdomain = null; if (fullDomain != baseDomain) { @@ -1191,6 +1216,7 @@ async function getDomainId( // Return the first valid domain return { subdomain: subdomain, - domainId: domainSelection.domainId + domainId: domainSelection.domainId, + wildcard: isWildcardFullDomain }; } diff --git a/server/lib/blueprints/types.ts b/server/lib/blueprints/types.ts index e017a16d1..13f4caa8f 100644 --- a/server/lib/blueprints/types.ts +++ b/server/lib/blueprints/types.ts @@ -2,6 +2,7 @@ import { z } from "zod"; import { portRangeStringSchema } from "@server/lib/ip"; import { MaintenanceSchema } from "#dynamic/lib/blueprints/MaintenanceSchema"; import { isValidRegionId } from "@server/db/regions"; +import { wildcardSubdomainSchema } from "@server/lib/schemas"; export const SiteSchema = z.object({ name: z.string().min(1).max(100), @@ -319,6 +320,34 @@ export const ResourceSchema = z message: "Rules have conflicting or invalid priorities (must be unique, including auto-assigned ones)" } + ) + .refine( + (resource) => { + const fullDomain = resource["full-domain"]; + if (!fullDomain || !fullDomain.includes("*")) return true; + + // A wildcard full-domain must be of the form *.labels.basedomain + // Extract the leftmost label(s) before the first non-wildcard segment. + // e.g. "*.level1.example.com" → subdomain candidate is "*.level1" + // We do this by finding the base domain: everything after the first + // real (non-wildcard) dot-separated segment pair. + // + // Simple rule: split on ".", first token must be "*", rest must be + // valid hostname labels, and there must be at least 2 remaining labels + // (so the full domain has a real base domain). + const parts = fullDomain.split("."); + if (parts[0] !== "*") return false; // * must be the very first label + if (parts.includes("*", 1)) return false; // no further wildcards + if (parts.length < 3) return false; // need at least *.label.tld + + const labelRegex = /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$|^[a-zA-Z0-9]$/; + return parts.slice(1).every((label) => labelRegex.test(label)); + }, + { + path: ["full-domain"], + message: + 'Wildcard full-domain must have "*" as the leftmost label only, followed by at least two valid hostname labels (e.g. "*.example.com" or "*.level1.example.com"). Patterns like "*example.com" or "level2.*.example.com" are not supported.' + } ); export function isTargetsOnlyResource(resource: any): boolean { diff --git a/server/lib/domainUtils.ts b/server/lib/domainUtils.ts index 3562df683..b8dab5e4c 100644 --- a/server/lib/domainUtils.ts +++ b/server/lib/domainUtils.ts @@ -1,7 +1,7 @@ import { db } from "@server/db"; -import { domains, orgDomains } from "@server/db"; +import { domains, orgDomains, domainNamespaces } from "@server/db"; import { eq, and } from "drizzle-orm"; -import { subdomainSchema } from "@server/lib/schemas"; +import { subdomainSchema, wildcardSubdomainSchema } from "@server/lib/schemas"; import { fromError } from "zod-validation-error"; export type DomainValidationResult = @@ -9,6 +9,7 @@ export type DomainValidationResult = success: true; fullDomain: string; subdomain: string | null; + wildcard: boolean; } | { success: false; @@ -66,6 +67,47 @@ export async function validateAndConstructDomain( }; } + // Detect wildcard subdomain request + const isWildcard = + subdomain !== undefined && + subdomain !== null && + subdomain.includes("*"); + + // Wildcard subdomains are not allowed on CNAME domains + if (isWildcard && domainRes.domains.type === "cname") { + return { + success: false, + error: "Wildcard subdomains are not supported for CNAME domains. CNAME domains must use a specific hostname." + }; + } + + // Wildcard subdomains are not allowed on namespace (provided/free) domains + if (isWildcard) { + const [namespaceDomain] = await db + .select() + .from(domainNamespaces) + .where(eq(domainNamespaces.domainId, domainId)) + .limit(1); + + if (namespaceDomain) { + return { + success: false, + error: "Wildcard subdomains are not supported for provided or free domains. Use a specific subdomain instead." + }; + } + } + + // Validate wildcard subdomain format + if (isWildcard) { + const parsedWildcard = wildcardSubdomainSchema.safeParse(subdomain); + if (!parsedWildcard.success) { + return { + success: false, + error: fromError(parsedWildcard.error).toString() + }; + } + } + // Construct full domain based on domain type let fullDomain = ""; let finalSubdomain = subdomain; @@ -81,13 +123,15 @@ export async function validateAndConstructDomain( finalSubdomain = null; // CNAME domains don't use subdomains } else if (domainRes.domains.type === "wildcard") { if (subdomain !== undefined && subdomain !== null) { - // Validate subdomain format for wildcard domains - const parsedSubdomain = subdomainSchema.safeParse(subdomain); - if (!parsedSubdomain.success) { - return { - success: false, - error: fromError(parsedSubdomain.error).toString() - }; + if (!isWildcard) { + // Validate regular subdomain format for wildcard domains + const parsedSubdomain = subdomainSchema.safeParse(subdomain); + if (!parsedSubdomain.success) { + return { + success: false, + error: fromError(parsedSubdomain.error).toString() + }; + } } fullDomain = `${subdomain}.${domainRes.domains.baseDomain}`; } else { @@ -100,13 +144,14 @@ export async function validateAndConstructDomain( finalSubdomain = null; } - // Convert to lowercase + // Convert to lowercase (preserve * as-is) fullDomain = fullDomain.toLowerCase(); return { success: true, fullDomain, - subdomain: finalSubdomain ?? null + subdomain: isWildcard ? "*" : (finalSubdomain ?? null), + wildcard: isWildcard }; } catch (error) { return { diff --git a/server/lib/schemas.ts b/server/lib/schemas.ts index 5e2bd400b..813849d52 100644 --- a/server/lib/schemas.ts +++ b/server/lib/schemas.ts @@ -1,5 +1,41 @@ import { z } from "zod"; +/** + * Validates a wildcard subdomain passed as the leftmost component of a full domain. + * + * The value represents everything to the left of the base domain, so when combined + * with e.g. "example.com" it must produce a valid SSL-style wildcard hostname. + * + * Valid: + * "*" → *.example.com + * "*.level1" → *.level1.example.com + * + * Invalid: + * "*example" → *example.com (no dot after *) + * "level2.*.level1" → wildcard not in leftmost position + * "*.level1.*" → multiple wildcards + */ +export const wildcardSubdomainSchema = z + .string() + .refine( + (val) => { + // Must start with "*."; the remainder (if any) must be valid hostname labels. + // A bare "*" is also valid (becomes *.baseDomain directly). + if (val === "*") return true; + if (!val.startsWith("*.")) return false; + const rest = val.slice(2); // everything after "*." + // rest must not be empty, must not contain another "*", + // and every label must be a valid hostname label. + if (!rest || rest.includes("*")) return false; + const labelRegex = /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/; + return rest.split(".").every((label) => labelRegex.test(label)); + }, + { + message: + 'Invalid wildcard subdomain. The wildcard "*" must be the leftmost label followed by a dot and valid hostname labels (e.g. "*" or "*.level1"). Patterns like "*example", "level2.*.level1", or multiple wildcards are not supported.' + } + ); + export const subdomainSchema = z .string() .regex( diff --git a/server/routers/resource/createResource.ts b/server/routers/resource/createResource.ts index f026166a6..d3ace5adc 100644 --- a/server/routers/resource/createResource.ts +++ b/server/routers/resource/createResource.ts @@ -17,7 +17,7 @@ import createHttpError from "http-errors"; import { eq, and } from "drizzle-orm"; import { fromError } from "zod-validation-error"; import logger from "@server/logger"; -import { subdomainSchema } from "@server/lib/schemas"; +import { subdomainSchema, wildcardSubdomainSchema } from "@server/lib/schemas"; import config from "@server/lib/config"; import { OpenAPITags, registry } from "@server/openApi"; import { build } from "@server/build"; @@ -25,6 +25,7 @@ import { createCertificate } from "#dynamic/routers/certificates/createCertifica import { getUniqueResourceName } from "@server/db/names"; import { validateAndConstructDomain } from "@server/lib/domainUtils"; import { isSubscribed } from "#dynamic/lib/isSubscribed"; +import { isLicensedOrSubscribed } from "#dynamic/lib/isLicencedOrSubscribed"; import { tierMatrix } from "@server/lib/billing/tierMatrix"; const createResourceParamsSchema = z.strictObject({ @@ -44,7 +45,10 @@ const createHttpResourceSchema = z .refine( (data) => { if (data.subdomain) { - return subdomainSchema.safeParse(data.subdomain).success; + return ( + subdomainSchema.safeParse(data.subdomain).success || + wildcardSubdomainSchema.safeParse(data.subdomain).success + ); } return true; }, @@ -198,6 +202,22 @@ async function createHttpResource( const subdomain = parsedBody.data.subdomain; const stickySession = parsedBody.data.stickySession; + // Wildcard subdomains are a paid feature + if (subdomain && subdomain.includes("*")) { + const isLicensed = await isLicensedOrSubscribed( + orgId, + tierMatrix.wildcardSubdomain + ); + if (!isLicensed) { + return next( + createHttpError( + HttpCode.FORBIDDEN, + "Wildcard subdomains are not supported on your current plan. Please upgrade to access this feature." + ) + ); + } + } + if (build == "saas" && !isSubscribed(orgId!, tierMatrix.domainNamespaces)) { // grandfather in existing users const lastAllowedDate = new Date("2026-04-13"); @@ -232,7 +252,7 @@ async function createHttpResource( return next(createHttpError(HttpCode.BAD_REQUEST, domainResult.error)); } - const { fullDomain, subdomain: finalSubdomain } = domainResult; + const { fullDomain, subdomain: finalSubdomain, wildcard } = domainResult; logger.debug(`Full domain: ${fullDomain}`); @@ -299,7 +319,8 @@ async function createHttpResource( protocol: "tcp", ssl: true, stickySession: stickySession, - postAuthPath: postAuthPath + postAuthPath: postAuthPath, + wildcard }) .returning(); diff --git a/server/routers/resource/updateResource.ts b/server/routers/resource/updateResource.ts index 21a923704..feb12e90e 100644 --- a/server/routers/resource/updateResource.ts +++ b/server/routers/resource/updateResource.ts @@ -16,8 +16,11 @@ import createHttpError from "http-errors"; import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import config from "@server/lib/config"; -import { tlsNameSchema } from "@server/lib/schemas"; -import { subdomainSchema } from "@server/lib/schemas"; +import { + tlsNameSchema, + subdomainSchema, + wildcardSubdomainSchema +} from "@server/lib/schemas"; import { registry } from "@server/openApi"; import { OpenAPITags } from "@server/openApi"; import { createCertificate } from "#dynamic/routers/certificates/createCertificate"; @@ -73,7 +76,10 @@ const updateHttpResourceBodySchema = z .refine( (data) => { if (data.subdomain) { - return subdomainSchema.safeParse(data.subdomain).success; + return ( + subdomainSchema.safeParse(data.subdomain).success || + wildcardSubdomainSchema.safeParse(data.subdomain).success + ); } return true; }, @@ -318,6 +324,22 @@ async function updateHttpResource( } } + // Wildcard subdomains are a paid feature + if (updateData.subdomain && updateData.subdomain.includes("*")) { + const isLicensed = await isLicensedOrSubscribed( + resource.orgId, + tierMatrix.wildcardSubdomain + ); + if (!isLicensed) { + return next( + createHttpError( + HttpCode.FORBIDDEN, + "Wildcard subdomains are not supported on your current plan. Please upgrade to access this feature." + ) + ); + } + } + if (updateData.domainId) { const domainId = updateData.domainId; @@ -362,7 +384,11 @@ async function updateHttpResource( ); } - const { fullDomain, subdomain: finalSubdomain } = domainResult; + const { + fullDomain, + subdomain: finalSubdomain, + wildcard + } = domainResult; logger.debug(`Full domain: ${fullDomain}`); @@ -419,7 +445,7 @@ async function updateHttpResource( if (fullDomain && fullDomain !== resource.fullDomain) { await db .update(resources) - .set({ fullDomain }) + .set({ fullDomain, wildcard }) .where(eq(resources.resourceId, resource.resourceId)); } diff --git a/src/components/DomainPicker.tsx b/src/components/DomainPicker.tsx index 7a90dfa67..281248327 100644 --- a/src/components/DomainPicker.tsx +++ b/src/components/DomainPicker.tsx @@ -27,6 +27,7 @@ import { cn } from "@/lib/cn"; import { finalizeSubdomainSanitize, isValidSubdomainStructure, + isWildcardSubdomain, sanitizeInputRaw, validateByDomainType } from "@/lib/subdomain-utils"; @@ -77,6 +78,7 @@ interface DomainPickerProps { subdomain?: string; fullDomain: string; baseDomain: string; + wildcard?: boolean; } | null ) => void; cols?: number; @@ -85,6 +87,7 @@ interface DomainPickerProps { defaultSubdomain?: string | null; defaultDomainId?: string | null; warnOnProvidedDomain?: boolean; + allowWildcard?: boolean; } export default function DomainPicker({ @@ -95,23 +98,33 @@ export default function DomainPicker({ defaultSubdomain, defaultFullDomain, defaultDomainId, - warnOnProvidedDomain = false + warnOnProvidedDomain = false, + allowWildcard = false }: DomainPickerProps) { const { env } = useEnvContext(); const { user } = useUserContext(); const api = createApiClient({ env }); const t = useTranslations(); - const { hasSaasSubscription } = usePaidStatus(); + const { hasSaasSubscription, isPaidUser } = usePaidStatus(); const requiresPaywall = build === "saas" && !hasSaasSubscription(tierMatrix[TierFeature.DomainNamespaces]) && new Date(user.dateCreated) > new Date("2026-04-13"); + const wildcardAllowed = + allowWildcard && isPaidUser(tierMatrix[TierFeature.WildcardSubdomain]); + const { data = [], isLoading: loadingDomains } = useQuery( orgQueries.domains({ orgId }) ); + // Wildcard mode toggle — only relevant when allowWildcard is true, the + // user has a paid plan, and the selected base domain supports it. + const [wildcardMode, setWildcardMode] = useState( + wildcardAllowed && !!defaultSubdomain && isWildcardSubdomain(defaultSubdomain) + ); + if (!env.flags.usePangolinDns) { hideFreeDomain = true; } @@ -180,13 +193,15 @@ export default function DomainPicker({ firstOrExistingDomain.type !== "cname" ? defaultSubdomain?.trim() || undefined : undefined; + const isWc = allowWildcard && !!sub && isWildcardSubdomain(sub); onDomainChange?.({ domainId: firstOrExistingDomain.domainId, type: "organization", subdomain: sub, fullDomain: sub ? `${sub}.${base}` : base, - baseDomain: base + baseDomain: base, + wildcard: isWc }); } } @@ -285,7 +300,7 @@ export default function DomainPicker({ }, [userInput, debouncedCheckAvailability, selectedBaseDomain]); const finalizeSubdomain = (sub: string, base: DomainOption): string => { - const sanitized = finalizeSubdomainSanitize(sub); + const sanitized = finalizeSubdomainSanitize(sub, wildcardAllowed && wildcardMode); if (!sanitized) { toast({ @@ -301,7 +316,8 @@ export default function DomainPicker({ base.type === "provided-search" ? "provided-search" : "organization", - domainType: base.domainType + domainType: base.domainType, + allowWildcard: wildcardAllowed && wildcardMode }); if (!ok) { @@ -330,7 +346,7 @@ export default function DomainPicker({ }; const handleSubdomainChange = (value: string) => { - const raw = sanitizeInputRaw(value); + const raw = sanitizeInputRaw(value, wildcardAllowed && wildcardMode); setSubdomainInput(raw); setSelectedProvidedDomain(null); @@ -338,13 +354,15 @@ export default function DomainPicker({ const fullDomain = raw ? `${raw}.${selectedBaseDomain.domain}` : selectedBaseDomain.domain; + const isWc = wildcardAllowed && wildcardMode && isWildcardSubdomain(raw); onDomainChange?.({ domainId: selectedBaseDomain.domainId!, type: "organization", subdomain: raw || undefined, fullDomain, - baseDomain: selectedBaseDomain.domain + baseDomain: selectedBaseDomain.domain, + wildcard: isWc }); } }; @@ -366,6 +384,18 @@ export default function DomainPicker({ const handleBaseDomainSelect = (option: DomainOption) => { let sub = subdomainInput; + // Wildcard mode is not applicable for cname or provided-search domains, + // or when the user doesn't have a paid plan. + const newWildcardMode = + wildcardAllowed && + wildcardMode && + option.type === "organization" && + option.domainType !== "cname"; + + if (newWildcardMode !== wildcardMode) { + setWildcardMode(newWildcardMode); + } + if (sub && sub.trim() !== "") { sub = finalizeSubdomain(sub, option) || ""; setSubdomainInput(sub); @@ -389,6 +419,7 @@ export default function DomainPicker({ } const fullDomain = sub ? `${sub}.${option.domain}` : option.domain; + const isWc = newWildcardMode && !!sub && isWildcardSubdomain(sub); if (option.type === "provided-search") { onDomainChange?.(null); // prevent the modal from closing with `.Free Provided domain` @@ -402,7 +433,8 @@ export default function DomainPicker({ ? sub || undefined : undefined, fullDomain, - baseDomain: option.domain + baseDomain: option.domain, + wildcard: isWc }); } }; @@ -431,7 +463,8 @@ export default function DomainPicker({ selectedBaseDomain.type === "provided-search" ? "provided-search" : "organization", - domainType: selectedBaseDomain.domainType + domainType: selectedBaseDomain.domainType, + allowWildcard: wildcardAllowed && wildcardMode }) : true; @@ -439,6 +472,31 @@ export default function DomainPicker({ selectedBaseDomain && selectedBaseDomain.type === "organization" && selectedBaseDomain.domainType !== "cname"; + + // Wildcard toggle is shown when the caller opts in and the selected domain + // supports it (ns or wildcard type). Shown even when unpaid so we can + // render a disabled state explaining it's a paid feature. + const showWildcardToggle = + allowWildcard && + showSubdomainInput && + (selectedBaseDomain?.domainType === "ns" || + selectedBaseDomain?.domainType === "wildcard"); + + const handleWildcardModeChange = (enabled: boolean) => { + setWildcardMode(enabled); + // Reset subdomain input when toggling modes to avoid invalid state + setSubdomainInput(""); + if (selectedBaseDomain?.type === "organization") { + onDomainChange?.({ + domainId: selectedBaseDomain.domainId!, + type: "organization", + subdomain: undefined, + fullDomain: selectedBaseDomain.domain, + baseDomain: selectedBaseDomain.domain, + wildcard: enabled ? true : false + }); + } + }; const showProvidedDomainSearch = selectedBaseDomain?.type === "provided-search"; @@ -463,9 +521,35 @@ export default function DomainPicker({
- +
+ + {showWildcardToggle && ( + + )} +
{showSubdomainInput && subdomainInput && - !isValidSubdomainStructure(subdomainInput) && ( + !isValidSubdomainStructure(subdomainInput, wildcardAllowed && wildcardMode) && (

{t("domainPickerInvalidSubdomainStructure")}

diff --git a/src/lib/subdomain-utils.ts b/src/lib/subdomain-utils.ts index 10c027a89..1c5e79207 100644 --- a/src/lib/subdomain-utils.ts +++ b/src/lib/subdomain-utils.ts @@ -5,16 +5,58 @@ export const MULTI_LABEL_RE = /^[\p{L}\p{N}-]+(\.[\p{L}\p{N}-]+)*$/u; // ns/wild export const SINGLE_LABEL_STRICT_RE = /^[\p{L}\p{N}](?:[\p{L}\p{N}-]*[\p{L}\p{N}])?$/u; // start/end alnum -export function sanitizeInputRaw(input: string): string { +/** + * A wildcard subdomain is either bare "*" or "*.label1.label2…" where every + * label after the dot is a valid hostname label. This mirrors the shape that + * the server's `wildcardSubdomainSchema` accepts. + */ +export const WILDCARD_SUBDOMAIN_RE = + /^\*(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/; + +export function isWildcardSubdomain(input: string): boolean { + return WILDCARD_SUBDOMAIN_RE.test(input); +} + +export function sanitizeInputRaw(input: string, allowWildcard = false): string { if (!input) return ""; + // When wildcard mode is active, preserve a leading "* " / "*." prefix and + // only sanitize the remainder so the user can type "*.level1" naturally. + if (allowWildcard && input.startsWith("*")) { + const rest = input.slice(1); + const sanitizedRest = rest + .toLowerCase() + .normalize("NFC") + .replace(/[^\p{L}\p{N}.-]/gu, ""); + return "*" + sanitizedRest; + } return input .toLowerCase() .normalize("NFC") // normalize Unicode .replace(/[^\p{L}\p{N}.-]/gu, ""); // allow Unicode letters, numbers, dot, hyphen } -export function finalizeSubdomainSanitize(input: string): string { +export function finalizeSubdomainSanitize( + input: string, + allowWildcard = false +): string { if (!input) return ""; + + // If the input is a valid wildcard and the caller permits it, keep it as-is + // (just lowercase the non-wildcard labels). + if (allowWildcard && input.startsWith("*")) { + const rest = input.slice(1); // everything after the leading "*" + const sanitizedRest = rest + .toLowerCase() + .normalize("NFC") + .replace(/[^\p{L}\p{N}.-]/gu, "") + .replace(/\.{2,}/g, ".") + .replace(/^-+|-+$/g, "") + .replace(/(\.-)|(-\.)/g, "."); + const candidate = "*" + sanitizedRest; + // Return only if it still forms a valid wildcard after sanitizing + return isWildcardSubdomain(candidate) ? candidate : ""; + } + return input .toLowerCase() .normalize("NFC") @@ -30,6 +72,7 @@ export function validateByDomainType( domainType: { type: "provided-search" | "organization"; domainType?: "ns" | "cname" | "wildcard"; + allowWildcard?: boolean; } ): boolean { if (!domainType) return false; @@ -46,6 +89,12 @@ export function validateByDomainType( domainType.domainType === "wildcard" ) { if (subdomain === "") return true; + + // Wildcard subdomain validation (only when caller opts in) + if (domainType.allowWildcard && subdomain.startsWith("*")) { + return isWildcardSubdomain(subdomain); + } + if (!MULTI_LABEL_RE.test(subdomain)) return false; const labels = subdomain.split("."); return labels.every( @@ -57,10 +106,19 @@ export function validateByDomainType( return false; } -export const isValidSubdomainStructure = (input: string): boolean => { +export const isValidSubdomainStructure = ( + input: string, + allowWildcard = false +): boolean => { + if (!input) return false; + + // A valid wildcard subdomain is structurally valid when the caller allows it + if (allowWildcard && input.startsWith("*")) { + return isWildcardSubdomain(input); + } + const regex = /^(?!-)([\p{L}\p{N}-]{1,63})(? regex.test(label)); From e7a9a19816d744d1ca83db081884ddf3fe42b7d2 Mon Sep 17 00:00:00 2001 From: Owen Date: Thu, 23 Apr 2026 15:01:43 -0700 Subject: [PATCH 002/131] Basic crud working? --- messages/en-US.json | 3 +- server/lib/domainUtils.ts | 2 +- server/routers/resource/updateResource.ts | 2 +- .../resources/proxy/[niceId]/general/page.tsx | 1 + .../settings/resources/proxy/create/page.tsx | 1 + src/components/DomainPicker.tsx | 169 ++++++++---------- src/components/ShowTrialCard.tsx | 2 +- src/hooks/useSubscriptionStatusContext.ts | 4 +- 8 files changed, 80 insertions(+), 104 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 8218cf8d3..ba0f1c004 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -3175,5 +3175,6 @@ "webhookUrlLabel": "URL", "webhookHeaderKeyPlaceholder": "Key", "webhookHeaderValuePlaceholder": "Value", - "alertLabel": "Alert" + "alertLabel": "Alert", + "domainPickerWildcardSubdomainNotAllowed": "Wildcard subdomains are not allowed." } diff --git a/server/lib/domainUtils.ts b/server/lib/domainUtils.ts index b8dab5e4c..b147e79b8 100644 --- a/server/lib/domainUtils.ts +++ b/server/lib/domainUtils.ts @@ -150,7 +150,7 @@ export async function validateAndConstructDomain( return { success: true, fullDomain, - subdomain: isWildcard ? "*" : (finalSubdomain ?? null), + subdomain: finalSubdomain ?? null, wildcard: isWildcard }; } catch (error) { diff --git a/server/routers/resource/updateResource.ts b/server/routers/resource/updateResource.ts index feb12e90e..7c6a46d8f 100644 --- a/server/routers/resource/updateResource.ts +++ b/server/routers/resource/updateResource.ts @@ -46,7 +46,7 @@ const updateHttpResourceBodySchema = z "niceId can only contain letters, numbers, and dashes" ) .optional(), - subdomain: subdomainSchema.nullable().optional(), + subdomain: z.string().nullable().optional(), ssl: z.boolean().optional(), sso: z.boolean().optional(), blockAccess: z.boolean().optional(), diff --git a/src/app/[orgId]/settings/resources/proxy/[niceId]/general/page.tsx b/src/app/[orgId]/settings/resources/proxy/[niceId]/general/page.tsx index 2b87da745..e1c5b6ac2 100644 --- a/src/app/[orgId]/settings/resources/proxy/[niceId]/general/page.tsx +++ b/src/app/[orgId]/settings/resources/proxy/[niceId]/general/page.tsx @@ -670,6 +670,7 @@ export default function GeneralForm() {
= 1 diff --git a/src/components/DomainPicker.tsx b/src/components/DomainPicker.tsx index 281248327..73926448b 100644 --- a/src/components/DomainPicker.tsx +++ b/src/components/DomainPicker.tsx @@ -46,6 +46,7 @@ import { Zap } from "lucide-react"; import { useTranslations } from "next-intl"; +import { PaidFeaturesAlert } from "@app/components/PaidFeaturesAlert"; import { usePaidStatus } from "@/hooks/usePaidStatus"; import { TierFeature, tierMatrix } from "@server/lib/billing/tierMatrix"; import { toUnicode } from "punycode"; @@ -119,11 +120,8 @@ export default function DomainPicker({ orgQueries.domains({ orgId }) ); - // Wildcard mode toggle — only relevant when allowWildcard is true, the - // user has a paid plan, and the selected base domain supports it. - const [wildcardMode, setWildcardMode] = useState( - wildcardAllowed && !!defaultSubdomain && isWildcardSubdomain(defaultSubdomain) - ); + // Wildcard mode is derived from the input itself — if the user types a + // wildcard subdomain (e.g. *.foo) and allowWildcard is enabled, it's active. if (!env.flags.usePangolinDns) { hideFreeDomain = true; @@ -193,7 +191,8 @@ export default function DomainPicker({ firstOrExistingDomain.type !== "cname" ? defaultSubdomain?.trim() || undefined : undefined; - const isWc = allowWildcard && !!sub && isWildcardSubdomain(sub); + const isWc = + allowWildcard && !!sub && isWildcardSubdomain(sub); onDomainChange?.({ domainId: firstOrExistingDomain.domainId, @@ -300,7 +299,8 @@ export default function DomainPicker({ }, [userInput, debouncedCheckAvailability, selectedBaseDomain]); const finalizeSubdomain = (sub: string, base: DomainOption): string => { - const sanitized = finalizeSubdomainSanitize(sub, wildcardAllowed && wildcardMode); + const wildcardMode = wildcardAllowed && isWildcardSubdomain(sub); + const sanitized = finalizeSubdomainSanitize(sub, wildcardMode); if (!sanitized) { toast({ @@ -317,7 +317,7 @@ export default function DomainPicker({ ? "provided-search" : "organization", domainType: base.domainType, - allowWildcard: wildcardAllowed && wildcardMode + allowWildcard: wildcardMode }); if (!ok) { @@ -346,7 +346,7 @@ export default function DomainPicker({ }; const handleSubdomainChange = (value: string) => { - const raw = sanitizeInputRaw(value, wildcardAllowed && wildcardMode); + const raw = sanitizeInputRaw(value, allowWildcard); setSubdomainInput(raw); setSelectedProvidedDomain(null); @@ -354,7 +354,7 @@ export default function DomainPicker({ const fullDomain = raw ? `${raw}.${selectedBaseDomain.domain}` : selectedBaseDomain.domain; - const isWc = wildcardAllowed && wildcardMode && isWildcardSubdomain(raw); + const isWc = wildcardAllowed && isWildcardSubdomain(raw); onDomainChange?.({ domainId: selectedBaseDomain.domainId!, @@ -384,16 +384,15 @@ export default function DomainPicker({ const handleBaseDomainSelect = (option: DomainOption) => { let sub = subdomainInput; - // Wildcard mode is not applicable for cname or provided-search domains, - // or when the user doesn't have a paid plan. - const newWildcardMode = + // If the selected domain doesn't support wildcards, strip any wildcard prefix. + const supportsWildcard = wildcardAllowed && - wildcardMode && option.type === "organization" && option.domainType !== "cname"; - if (newWildcardMode !== wildcardMode) { - setWildcardMode(newWildcardMode); + if (!supportsWildcard && isWildcardSubdomain(sub)) { + sub = sub.replace(/^\*\./, ""); + setSubdomainInput(sub); } if (sub && sub.trim() !== "") { @@ -419,7 +418,7 @@ export default function DomainPicker({ } const fullDomain = sub ? `${sub}.${option.domain}` : option.domain; - const isWc = newWildcardMode && !!sub && isWildcardSubdomain(sub); + const isWc = wildcardAllowed && !!sub && isWildcardSubdomain(sub); if (option.type === "provided-search") { onDomainChange?.(null); // prevent the modal from closing with `.Free Provided domain` @@ -464,7 +463,8 @@ export default function DomainPicker({ ? "provided-search" : "organization", domainType: selectedBaseDomain.domainType, - allowWildcard: wildcardAllowed && wildcardMode + allowWildcard: + wildcardAllowed && isWildcardSubdomain(subdomainInput) }) : true; @@ -473,30 +473,6 @@ export default function DomainPicker({ selectedBaseDomain.type === "organization" && selectedBaseDomain.domainType !== "cname"; - // Wildcard toggle is shown when the caller opts in and the selected domain - // supports it (ns or wildcard type). Shown even when unpaid so we can - // render a disabled state explaining it's a paid feature. - const showWildcardToggle = - allowWildcard && - showSubdomainInput && - (selectedBaseDomain?.domainType === "ns" || - selectedBaseDomain?.domainType === "wildcard"); - - const handleWildcardModeChange = (enabled: boolean) => { - setWildcardMode(enabled); - // Reset subdomain input when toggling modes to avoid invalid state - setSubdomainInput(""); - if (selectedBaseDomain?.type === "organization") { - onDomainChange?.({ - domainId: selectedBaseDomain.domainId!, - type: "organization", - subdomain: undefined, - fullDomain: selectedBaseDomain.domain, - baseDomain: selectedBaseDomain.domain, - wildcard: enabled ? true : false - }); - } - }; const showProvidedDomainSearch = selectedBaseDomain?.type === "provided-search"; @@ -525,30 +501,6 @@ export default function DomainPicker({ - {showWildcardToggle && ( - - )}
{showSubdomainInput && subdomainInput && - !isValidSubdomainStructure(subdomainInput, wildcardAllowed && wildcardMode) && ( + !isValidSubdomainStructure( + subdomainInput, + wildcardAllowed && + isWildcardSubdomain(subdomainInput) + ) && (

{t("domainPickerInvalidSubdomainStructure")}

)} + {allowWildcard && + !wildcardAllowed && + showSubdomainInput && + isWildcardSubdomain(subdomainInput) && ( + <> +

+ {t( + "domainPickerWildcardSubdomainNotAllowed" + )} +

+ + + )}
@@ -678,23 +653,23 @@ export default function DomainPicker({ {orgDomain.type === - "wildcard" - ? t( - "domainPickerManual" - ) - : ( - <> - {orgDomain.type.toUpperCase()}{" "} - •{" "} - {orgDomain.verified - ? t( - "domainPickerVerified" - ) - : t( - "domainPickerUnverified" - )} - - )} + "wildcard" ? ( + t( + "domainPickerManual" + ) + ) : ( + <> + {orgDomain.type.toUpperCase()}{" "} + •{" "} + {orgDomain.verified + ? t( + "domainPickerVerified" + ) + : t( + "domainPickerUnverified" + )} + + )}
{requiresPaywall && !hideFreeDomain && ( - - -
- - - {t("domainPickerFreeDomainsPaidFeature")} - -
-
-
- )} + + +
+ + + {t("domainPickerFreeDomainsPaidFeature")} + +
+
+
+ )} {/*showProvidedDomainSearch && build === "saas" && ( diff --git a/src/components/ShowTrialCard.tsx b/src/components/ShowTrialCard.tsx index 1cc8e79f1..dc58483f8 100644 --- a/src/components/ShowTrialCard.tsx +++ b/src/components/ShowTrialCard.tsx @@ -14,7 +14,7 @@ import { } from "@app/components/ui/tooltip"; import { useTranslations } from "next-intl"; -const TRIAL_DURATION_DAYS = 14; +const TRIAL_DURATION_DAYS = 10; export default function ShowTrialCard({ isCollapsed diff --git a/src/hooks/useSubscriptionStatusContext.ts b/src/hooks/useSubscriptionStatusContext.ts index 59d6a6b9a..2fd61dd2e 100644 --- a/src/hooks/useSubscriptionStatusContext.ts +++ b/src/hooks/useSubscriptionStatusContext.ts @@ -8,9 +8,7 @@ export function useSubscriptionStatusContext() { } const context = useContext(SubscriptionStatusContext); if (context === undefined) { - throw new Error( - "useSubscriptionStatusContext must be used within an SubscriptionStatusProvider" - ); + return null; } return context; } From 1ba7fca798bf83bffdebf09be3f27e8def3d02ff Mon Sep 17 00:00:00 2001 From: Owen Date: Thu, 23 Apr 2026 15:08:55 -0700 Subject: [PATCH 003/131] Update traefik config --- server/private/lib/traefik/getTraefikConfig.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/server/private/lib/traefik/getTraefikConfig.ts b/server/private/lib/traefik/getTraefikConfig.ts index fb6e176b8..dba2cbffb 100644 --- a/server/private/lib/traefik/getTraefikConfig.ts +++ b/server/private/lib/traefik/getTraefikConfig.ts @@ -100,6 +100,7 @@ export async function getTraefikConfig( headers: resources.headers, proxyProtocol: resources.proxyProtocol, proxyProtocolVersion: resources.proxyProtocolVersion, + wildcard: resources.wildcard, maintenanceModeEnabled: resources.maintenanceModeEnabled, maintenanceModeType: resources.maintenanceModeType, @@ -238,6 +239,7 @@ export async function getTraefikConfig( priority: priority, // may be null, we fallback later domainCertResolver: row.domainCertResolver, preferWildcardCert: row.preferWildcardCert, + wildcard: row.wildcard, maintenanceModeEnabled: row.maintenanceModeEnabled, maintenanceModeType: row.maintenanceModeType, @@ -376,7 +378,16 @@ export async function getTraefikConfig( ...additionalMiddlewares ]; - let rule = `Host(\`${fullDomain}\`)`; + let rule: string; + if (resource.wildcard && fullDomain.startsWith("*.")) { + // Convert *.foo.bar.com -> HostRegexp(`^[^.]+\.foo\.bar\.com$`) + const escaped = fullDomain + .slice(2) // remove leading "*." + .replace(/\./g, "\\."); + rule = `HostRegexp(\`^[^.]+\\.${escaped}$\`)`; + } else { + rule = `Host(\`${fullDomain}\`)`; + } // priority logic let priority: number; @@ -566,7 +577,7 @@ export async function getTraefikConfig( resource.ssl ? entrypointHttps : entrypointHttp ], service: maintenanceServiceName, - rule: `Host(\`${fullDomain}\`) && (PathPrefix(\`/_next\`) || PathRegexp(\`^/__nextjs*\`))`, + rule: `${rule} && (PathPrefix(\`/_next\`) || PathRegexp(\`^/__nextjs*\`))`, priority: 2001, ...(resource.ssl ? { tls } : {}) }; From 5e293e8364ff4a5b701815755c879aa4a3312cd6 Mon Sep 17 00:00:00 2001 From: Owen Date: Thu, 23 Apr 2026 17:12:56 -0700 Subject: [PATCH 004/131] Handle getting resources --- server/db/queries/verifySessionQueries.ts | 39 ++++++++++++++++++++--- server/private/routers/hybrid.ts | 34 +++++++++++++++++--- 2 files changed, 65 insertions(+), 8 deletions(-) diff --git a/server/db/queries/verifySessionQueries.ts b/server/db/queries/verifySessionQueries.ts index 989e111a7..46b45b1a0 100644 --- a/server/db/queries/verifySessionQueries.ts +++ b/server/db/queries/verifySessionQueries.ts @@ -25,7 +25,7 @@ import { ResourceHeaderAuthExtendedCompatibility, resourceHeaderAuthExtendedCompatibility } from "@server/db"; -import { and, eq, inArray } from "drizzle-orm"; +import { and, eq, inArray, or, sql } from "drizzle-orm"; export type ResourceWithAuth = { resource: Resource | null; @@ -47,7 +47,17 @@ export type UserSessionWithUser = { export async function getResourceByDomain( domain: string ): Promise { - const [result] = await db + // Build wildcard domain variants to match against. + // For a domain like "me.example.test.com", we want to match: + // - "*.example.test.com" (subdomain wildcard) + // - "*.test.com" (parent wildcard, i.e. just "*" subdomain on parent) + const parts = domain.split("."); + const wildcardCandidates: string[] = []; + for (let i = 1; i < parts.length; i++) { + wildcardCandidates.push(`*.${parts.slice(i).join(".")}`); + } + + const potentialResults = await db .select() .from(resources) .leftJoin( @@ -70,8 +80,29 @@ export async function getResourceByDomain( ) ) .innerJoin(orgs, eq(orgs.orgId, resources.orgId)) - .where(eq(resources.fullDomain, domain)) - .limit(1); + .where( + or( + // Exact match + eq(resources.fullDomain, domain), + // Wildcard match: resource fullDomain is one of the wildcard candidates + wildcardCandidates.length > 0 + ? and( + eq(resources.wildcard, true), + inArray(resources.fullDomain, wildcardCandidates) + ) + : sql`false` + ) + ); + + if (!potentialResults.length) { + return null; + } + + // Prefer exact match over wildcard match + const exactMatch = potentialResults.find( + (r) => r.resources?.fullDomain === domain + ); + const result = exactMatch ?? potentialResults[0]; if (!result) { return null; diff --git a/server/private/routers/hybrid.ts b/server/private/routers/hybrid.ts index b3ef792d9..98e7ff671 100644 --- a/server/private/routers/hybrid.ts +++ b/server/private/routers/hybrid.ts @@ -50,7 +50,7 @@ import { userOrgRoles, roles } from "@server/db"; -import { eq, and, inArray, isNotNull, ne } from "drizzle-orm"; +import { eq, and, inArray, isNotNull, ne, or, sql } from "drizzle-orm"; import { response } from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import { NextFunction, Request, Response } from "express"; @@ -492,7 +492,15 @@ hybridRouter.get( ); } - const [result] = await db + // Build wildcard domain candidates for the requested domain. + // e.g. "me.example.test.com" -> ["*.example.test.com", "*.test.com"] + const domainParts = domain.split("."); + const wildcardCandidates: string[] = []; + for (let i = 1; i < domainParts.length; i++) { + wildcardCandidates.push(`*.${domainParts.slice(i).join(".")}`); + } + + const potentialResults = await db .select() .from(resources) .leftJoin( @@ -515,10 +523,28 @@ hybridRouter.get( ) ) .innerJoin(orgs, eq(orgs.orgId, resources.orgId)) - .where(eq(resources.fullDomain, domain)) - .limit(1); + .where( + or( + // Exact match + eq(resources.fullDomain, domain), + // Wildcard match + wildcardCandidates.length > 0 + ? and( + eq(resources.wildcard, true), + inArray(resources.fullDomain, wildcardCandidates) + ) + : sql`false` + ) + ); + + // Prefer exact match over wildcard match + const exactMatch = potentialResults.find( + (r) => r.resources?.fullDomain === domain + ); + const result = exactMatch ?? potentialResults[0]; if ( + result && await checkExitNodeOrg( remoteExitNode.exitNodeId, result.resources.orgId From 009bac64bf24b1094fd976cca3ad3b23260b496c Mon Sep 17 00:00:00 2001 From: Owen Date: Thu, 23 Apr 2026 18:02:32 -0700 Subject: [PATCH 005/131] Adding guiderails --- messages/en-US.json | 4 +- server/lib/domainUtils.ts | 103 +++++++++++++++++- .../private/lib/traefik/getTraefikConfig.ts | 53 ++++----- server/routers/resource/createResource.ts | 9 +- server/routers/resource/updateResource.ts | 12 +- src/components/DomainPicker.tsx | 15 +++ 6 files changed, 163 insertions(+), 33 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index ba0f1c004..97b19552d 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -3176,5 +3176,7 @@ "webhookHeaderKeyPlaceholder": "Key", "webhookHeaderValuePlaceholder": "Value", "alertLabel": "Alert", - "domainPickerWildcardSubdomainNotAllowed": "Wildcard subdomains are not allowed." + "domainPickerWildcardSubdomainNotAllowed": "Wildcard subdomains are not allowed.", + "domainPickerWildcardCertWarning": "Wildcard certificates must be configured separately in Traefik.", + "domainPickerWildcardCertWarningLink": "Learn more" } diff --git a/server/lib/domainUtils.ts b/server/lib/domainUtils.ts index b147e79b8..138ffc74f 100644 --- a/server/lib/domainUtils.ts +++ b/server/lib/domainUtils.ts @@ -1,8 +1,9 @@ import { db } from "@server/db"; -import { domains, orgDomains, domainNamespaces } from "@server/db"; -import { eq, and } from "drizzle-orm"; +import { domains, orgDomains, domainNamespaces, resources } from "@server/db"; +import { eq, and, like, not } from "drizzle-orm"; import { subdomainSchema, wildcardSubdomainSchema } from "@server/lib/schemas"; import { fromError } from "zod-validation-error"; +import config from "./config"; export type DomainValidationResult = | { @@ -71,7 +72,8 @@ export async function validateAndConstructDomain( const isWildcard = subdomain !== undefined && subdomain !== null && - subdomain.includes("*"); + subdomain.includes("*") && + domainRes.domains.type !== "cname"; // Wildcard subdomains are not allowed on CNAME domains if (isWildcard && domainRes.domains.type === "cname") { @@ -97,6 +99,20 @@ export async function validateAndConstructDomain( } } + if ( + isWildcard && + domainRes.domains.type == "wildcard" && + !( + domainRes.domains.preferWildcardCert || + config.getRawConfig().traefik.prefer_wildcard_cert + ) + ) { + return { + success: false, + error: "Wildcard domains are not supported without configuring certificate resolver for wildcard certs and marking it as prefered." + }; + } + // Validate wildcard subdomain format if (isWildcard) { const parsedWildcard = wildcardSubdomainSchema.safeParse(subdomain); @@ -125,7 +141,8 @@ export async function validateAndConstructDomain( if (subdomain !== undefined && subdomain !== null) { if (!isWildcard) { // Validate regular subdomain format for wildcard domains - const parsedSubdomain = subdomainSchema.safeParse(subdomain); + const parsedSubdomain = + subdomainSchema.safeParse(subdomain); if (!parsedSubdomain.success) { return { success: false, @@ -160,3 +177,81 @@ export async function validateAndConstructDomain( }; } } + +/** + * Checks whether a given fullDomain conflicts with any existing wildcard resources, + * or (if the fullDomain is itself a wildcard) whether any existing resources would + * be matched by it. + * + * @param fullDomain - The fully-constructed domain to check (may contain a leading `*`) + * @param excludeResourceId - Optional resource ID to exclude from the check (for updates) + * @returns An object with `conflict: true` and a human-readable `message`, or `conflict: false` + */ +export async function checkWildcardDomainConflict( + fullDomain: string, + excludeResourceId?: number +): Promise<{ conflict: false } | { conflict: true; message: string }> { + const isWildcard = fullDomain.startsWith("*."); + + if (isWildcard) { + // e.g. fullDomain = "*.example.com" → suffix = ".example.com" + const suffix = fullDomain.slice(1); // ".example.com" + + // Find any existing non-wildcard resource whose fullDomain ends with this suffix + // e.g. "test.example.com" or "foo.example.com" + const conflicting = await db + .select({ + resourceId: resources.resourceId, + fullDomain: resources.fullDomain + }) + .from(resources) + .where(like(resources.fullDomain, `%${suffix}`)); + + const matches = conflicting.filter( + (r) => + !r.fullDomain!.startsWith("*.") && + r.fullDomain!.endsWith(suffix) && + (excludeResourceId === undefined || + r.resourceId !== excludeResourceId) + ); + + if (matches.length > 0) { + return { + conflict: true, + message: `Wildcard domain ${fullDomain} conflicts with existing resource(s): ${matches.map((r) => r.fullDomain).join(", ")}` + }; + } + } else { + // Specific domain — check if any existing wildcard would match it. + // e.g. fullDomain = "test.example.com" + // We look for a wildcard "*.example.com" which means fullDomain ends with ".example.com" + const dotIndex = fullDomain.indexOf("."); + if (dotIndex !== -1) { + const suffix = fullDomain.slice(dotIndex); // ".example.com" + const wildcardPattern = `*.${fullDomain.slice(dotIndex + 1)}`; // "*.example.com" + + const conflicting = await db + .select({ + resourceId: resources.resourceId, + fullDomain: resources.fullDomain + }) + .from(resources) + .where(eq(resources.fullDomain, wildcardPattern)); + + const matches = conflicting.filter( + (r) => + excludeResourceId === undefined || + r.resourceId !== excludeResourceId + ); + + if (matches.length > 0) { + return { + conflict: true, + message: `Domain ${fullDomain} conflicts with existing wildcard resource(s): ${matches.map((r) => r.fullDomain).join(", ")}` + }; + } + } + } + + return { conflict: false }; +} diff --git a/server/private/lib/traefik/getTraefikConfig.ts b/server/private/lib/traefik/getTraefikConfig.ts index dba2cbffb..6427bec4f 100644 --- a/server/private/lib/traefik/getTraefikConfig.ts +++ b/server/private/lib/traefik/getTraefikConfig.ts @@ -33,7 +33,15 @@ import { } from "drizzle-orm"; import logger from "@server/logger"; import config from "@server/lib/config"; -import { orgs, resources, sites, siteNetworks, siteResources, Target, targets } from "@server/db"; +import { + orgs, + resources, + sites, + siteNetworks, + siteResources, + Target, + targets +} from "@server/db"; import { sanitize, encodePath, @@ -277,7 +285,10 @@ export async function getTraefikConfig( mode: siteResources.mode }) .from(siteResources) - .innerJoin(siteNetworks, eq(siteResources.networkId, siteNetworks.networkId)) + .innerJoin( + siteNetworks, + eq(siteResources.networkId, siteNetworks.networkId) + ) .innerJoin(sites, eq(siteNetworks.siteId, sites.siteId)) .where( and( @@ -430,7 +441,8 @@ export async function getTraefikConfig( config.getRawConfig().traefik.prefer_wildcard_cert; const domainCertResolver = resource.domainCertResolver; - const preferWildcardCert = resource.preferWildcardCert; + const preferWildcardCert = + resource.preferWildcardCert || resource.wildcard; let resolverName: string | undefined; let preferWildcard: boolean | undefined; @@ -964,22 +976,17 @@ export async function getTraefikConfig( }; // Middleware that rewrites any path to /maintenance-screen - config_output.http.middlewares[ - siteResourceRewriteMiddlewareName - ] = { - replacePathRegex: { - regex: "^/(.*)", - replacement: "/private-maintenance-screen" - } - }; + config_output.http.middlewares[siteResourceRewriteMiddlewareName] = + { + replacePathRegex: { + regex: "^/(.*)", + replacement: "/private-maintenance-screen" + } + }; // HTTP -> HTTPS redirect so the ACME challenge can be served - config_output.http.routers[ - `${siteResourceRouterName}-redirect` - ] = { - entryPoints: [ - config.getRawConfig().traefik.http_entrypoint - ], + config_output.http.routers[`${siteResourceRouterName}-redirect`] = { + entryPoints: [config.getRawConfig().traefik.http_entrypoint], middlewares: [redirectHttpsMiddlewareName], service: siteResourceServiceName, rule: `Host(\`${fullDomain}\`)`, @@ -988,9 +995,7 @@ export async function getTraefikConfig( // Determine TLS / cert-resolver configuration let tls: any = {}; - if ( - !privateConfig.getRawPrivateConfig().flags.use_pangolin_dns - ) { + if (!privateConfig.getRawPrivateConfig().flags.use_pangolin_dns) { const domainParts = fullDomain.split("."); const wildCard = domainParts.length <= 2 @@ -1023,9 +1028,7 @@ export async function getTraefikConfig( // HTTPS router - presence of this entry triggers cert generation config_output.http.routers[siteResourceRouterName] = { - entryPoints: [ - config.getRawConfig().traefik.https_entrypoint - ], + entryPoints: [config.getRawConfig().traefik.https_entrypoint], service: siteResourceServiceName, middlewares: [siteResourceRewriteMiddlewareName], rule: `Host(\`${fullDomain}\`)`, @@ -1035,9 +1038,7 @@ export async function getTraefikConfig( // Assets bypass router - lets Next.js static files load without rewrite config_output.http.routers[`${siteResourceRouterName}-assets`] = { - entryPoints: [ - config.getRawConfig().traefik.https_entrypoint - ], + entryPoints: [config.getRawConfig().traefik.https_entrypoint], service: siteResourceServiceName, rule: `Host(\`${fullDomain}\`) && (PathPrefix(\`/_next\`) || PathRegexp(\`^/__nextjs*\`))`, priority: 101, diff --git a/server/routers/resource/createResource.ts b/server/routers/resource/createResource.ts index d3ace5adc..85e607211 100644 --- a/server/routers/resource/createResource.ts +++ b/server/routers/resource/createResource.ts @@ -23,7 +23,7 @@ import { OpenAPITags, registry } from "@server/openApi"; import { build } from "@server/build"; import { createCertificate } from "#dynamic/routers/certificates/createCertificate"; import { getUniqueResourceName } from "@server/db/names"; -import { validateAndConstructDomain } from "@server/lib/domainUtils"; +import { validateAndConstructDomain, checkWildcardDomainConflict } from "@server/lib/domainUtils"; import { isSubscribed } from "#dynamic/lib/isSubscribed"; import { isLicensedOrSubscribed } from "#dynamic/lib/isLicencedOrSubscribed"; import { tierMatrix } from "@server/lib/billing/tierMatrix"; @@ -271,6 +271,13 @@ async function createHttpResource( ); } + const wildcardConflict = await checkWildcardDomainConflict(fullDomain); + if (wildcardConflict.conflict) { + return next( + createHttpError(HttpCode.CONFLICT, wildcardConflict.message) + ); + } + // Prevent creating resource with same domain as dashboard const dashboardUrl = config.getRawConfig().app.dashboard_url; if (dashboardUrl) { diff --git a/server/routers/resource/updateResource.ts b/server/routers/resource/updateResource.ts index 7c6a46d8f..0a7052dce 100644 --- a/server/routers/resource/updateResource.ts +++ b/server/routers/resource/updateResource.ts @@ -24,7 +24,7 @@ import { import { registry } from "@server/openApi"; import { OpenAPITags } from "@server/openApi"; import { createCertificate } from "#dynamic/routers/certificates/createCertificate"; -import { validateAndConstructDomain } from "@server/lib/domainUtils"; +import { validateAndConstructDomain, checkWildcardDomainConflict } from "@server/lib/domainUtils"; import { build } from "@server/build"; import { isLicensedOrSubscribed } from "#dynamic/lib/isLicencedOrSubscribed"; import { tierMatrix } from "@server/lib/billing/tierMatrix"; @@ -410,6 +410,16 @@ async function updateHttpResource( ); } + const wildcardConflict = await checkWildcardDomainConflict( + fullDomain, + resource.resourceId + ); + if (wildcardConflict.conflict) { + return next( + createHttpError(HttpCode.CONFLICT, wildcardConflict.message) + ); + } + // Prevent updating resource with same domain as dashboard const dashboardUrl = config.getRawConfig().app.dashboard_url; if (dashboardUrl) { diff --git a/src/components/DomainPicker.tsx b/src/components/DomainPicker.tsx index 73926448b..1c7a117a3 100644 --- a/src/components/DomainPicker.tsx +++ b/src/components/DomainPicker.tsx @@ -906,6 +906,21 @@ export default function DomainPicker({ )}
)} + {selectedBaseDomain?.domainType === "wildcard" && + isWildcardSubdomain(subdomainInput) && ( +

+ {t("domainPickerWildcardCertWarning")}{" "} + + {t("domainPickerWildcardCertWarningLink")} + + . +

+ )}
); } From 07c7501669feab110b93d80c983cdce94557b09a Mon Sep 17 00:00:00 2001 From: Owen Date: Thu, 23 Apr 2026 20:30:34 -0700 Subject: [PATCH 006/131] New columns --- server/setup/scriptsPg/1.18.0.ts | 8 ++++++++ server/setup/scriptsSqlite/1.18.0.ts | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/server/setup/scriptsPg/1.18.0.ts b/server/setup/scriptsPg/1.18.0.ts index 2f2b3067c..8431a11c1 100644 --- a/server/setup/scriptsPg/1.18.0.ts +++ b/server/setup/scriptsPg/1.18.0.ts @@ -346,6 +346,14 @@ export default async function migration() { ALTER TABLE "siteResources" DROP COLUMN "protocol"; `); + await db.execute(sql` + ALTER TABLE "resources" ADD "health" varchar; + `); + + await db.execute(sql` + ALTER TABLE "resources" ADD "wildcard" boolean DEFAULT false NOT NULL; + `); + await db.execute(sql`COMMIT`); console.log("Migrated database"); } catch (e) { diff --git a/server/setup/scriptsSqlite/1.18.0.ts b/server/setup/scriptsSqlite/1.18.0.ts index c9d2ddc95..d34cf1541 100644 --- a/server/setup/scriptsSqlite/1.18.0.ts +++ b/server/setup/scriptsSqlite/1.18.0.ts @@ -330,6 +330,17 @@ export default async function migration() { ALTER TABLE 'sites' ADD 'networkId' integer REFERENCES networks(networkId); ` ).run(); + db.prepare( + ` + ALTER TABLE 'resources' ADD 'health' text; + ` + ).run(); + db.prepare( + ` + ALTER TABLE 'resources' ADD 'wildcard' integer DEFAULT false NOT NULL; + ` + ).run(); + })(); db.pragma("foreign_keys = ON"); From b4f0b4e285664bf7e5c505579442c454873a0e3e Mon Sep 17 00:00:00 2001 From: Owen Date: Thu, 23 Apr 2026 21:25:13 -0700 Subject: [PATCH 007/131] Handle matching wildcards --- server/routers/resource/getResourceAuthInfo.ts | 10 ++++++++-- src/app/auth/resource/[resourceGuid]/page.tsx | 12 ++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/server/routers/resource/getResourceAuthInfo.ts b/server/routers/resource/getResourceAuthInfo.ts index 7def75d5b..30ff4699a 100644 --- a/server/routers/resource/getResourceAuthInfo.ts +++ b/server/routers/resource/getResourceAuthInfo.ts @@ -32,6 +32,8 @@ export type GetResourceAuthInfoResponse = { sso: boolean; blockAccess: boolean; url: string; + wildcard: boolean; + fullDomain: string | null; whitelist: boolean; skipToIdpId: number | null; orgId: string; @@ -130,7 +132,9 @@ export async function getResourceAuthInfo( const headerAuthExtendedCompatibility = result?.resourceHeaderAuthExtendedCompatibility; - const url = `${resource.ssl ? "https" : "http"}://${resource.fullDomain}`; + const url = resource.fullDomain + ? `${resource.ssl ? "https" : "http"}://${resource.fullDomain}` + : null; return response(res, { data: { @@ -145,7 +149,9 @@ export async function getResourceAuthInfo( headerAuthExtendedCompatibility !== null, sso: resource.sso, blockAccess: resource.blockAccess, - url, + url: url ?? "", + wildcard: resource.wildcard ?? false, + fullDomain: resource.fullDomain, whitelist: resource.emailWhitelistEnabled, skipToIdpId: resource.skipToIdpId, orgId: resource.orgId, diff --git a/src/app/auth/resource/[resourceGuid]/page.tsx b/src/app/auth/resource/[resourceGuid]/page.tsx index f22a59d6b..c78c277b6 100644 --- a/src/app/auth/resource/[resourceGuid]/page.tsx +++ b/src/app/auth/resource/[resourceGuid]/page.tsx @@ -106,10 +106,22 @@ export default async function ResourceAuthPage(props: { const redirectPort = new URL(searchParams.redirect).port; const serverResourceHostWithPort = `${serverResourceHost}:${redirectPort}`; + const wildcardMatchesRedirect = (wildcardDomain: string, host: string): boolean => { + if (!wildcardDomain.startsWith("*.")) return false; + const suffix = wildcardDomain.slice(1); // e.g. ".wildcard.owen.fosrl.io" + return host.endsWith(suffix) && host.length > suffix.length; + }; + if (serverResourceHost === redirectHost) { redirectUrl = searchParams.redirect; } else if (serverResourceHostWithPort === redirectHost) { redirectUrl = searchParams.redirect; + } else if ( + authInfo.wildcard && + authInfo.fullDomain && + wildcardMatchesRedirect(authInfo.fullDomain, redirectHost) + ) { + redirectUrl = searchParams.redirect; } } catch (e) {} } From 6a96f743aaeacc76d7ec483157f79825c26542ba Mon Sep 17 00:00:00 2001 From: Owen Date: Thu, 23 Apr 2026 21:38:12 -0700 Subject: [PATCH 008/131] Update exchange session to support wildcards --- server/routers/badger/exchangeSession.ts | 28 ++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/server/routers/badger/exchangeSession.ts b/server/routers/badger/exchangeSession.ts index bde5518b8..e6c8b70f1 100644 --- a/server/routers/badger/exchangeSession.ts +++ b/server/routers/badger/exchangeSession.ts @@ -6,7 +6,7 @@ import { fromError } from "zod-validation-error"; import logger from "@server/logger"; import { resourceAccessToken, resources, sessions } from "@server/db"; import { db } from "@server/db"; -import { eq } from "drizzle-orm"; +import { and, eq, inArray, or, sql } from "drizzle-orm"; import { createResourceSession, serializeResourceSessionCookie, @@ -65,11 +65,31 @@ export async function exchangeSession( const clientIp = requestIp ? stripPortFromHost(requestIp) : undefined; - const [resource] = await db + const parts = cleanHost.split("."); + const wildcardCandidates: string[] = []; + for (let i = 1; i < parts.length; i++) { + wildcardCandidates.push(`*.${parts.slice(i).join(".")}`); + } + + const potentialResources = await db .select() .from(resources) - .where(eq(resources.fullDomain, cleanHost)) - .limit(1); + .where( + or( + eq(resources.fullDomain, cleanHost), + wildcardCandidates.length > 0 + ? and( + eq(resources.wildcard, true), + inArray(resources.fullDomain, wildcardCandidates) + ) + : sql`false` + ) + ); + + const exactMatch = potentialResources.find( + (r) => r.fullDomain === cleanHost + ); + const resource = exactMatch ?? potentialResources[0]; if (!resource) { return next( From d08f2767941821cc45c6e4817c24bf191d6db80a Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 11:55:09 -0700 Subject: [PATCH 009/131] Use the provided host in the cookie --- server/routers/badger/exchangeSession.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/routers/badger/exchangeSession.ts b/server/routers/badger/exchangeSession.ts index e6c8b70f1..08987961d 100644 --- a/server/routers/badger/exchangeSession.ts +++ b/server/routers/badger/exchangeSession.ts @@ -198,7 +198,7 @@ export async function exchangeSession( const cookieName = `${config.getRawConfig().server.session_cookie_name}`; const cookie = serializeResourceSessionCookie( cookieName, - resource.fullDomain!, + cleanHost, token, !resource.ssl, expiresAt ? new Date(expiresAt) : undefined From 537f9ae66b9c55b6c15fe75f32c998c6f56c2413 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 12:14:06 -0700 Subject: [PATCH 010/131] Always update the domain even if wildcard changes --- server/private/lib/acmeCertSync.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/private/lib/acmeCertSync.ts b/server/private/lib/acmeCertSync.ts index 24d612661..f5dfdeb12 100644 --- a/server/private/lib/acmeCertSync.ts +++ b/server/private/lib/acmeCertSync.ts @@ -312,8 +312,7 @@ async function syncAcmeCerts( .from(certificates) .where( and( - eq(certificates.domain, domain), - eq(certificates.wildcard, wildcard) + eq(certificates.domain, domain) ) ) .limit(1); @@ -392,6 +391,9 @@ async function syncAcmeCerts( } if (existing.length > 0) { + logger.debug( + `acmeCertSync: updating existing certificate for ${domain} (expires ${expiresAt ? new Date(expiresAt * 1000).toISOString() : "unknown"})` + ); await db .update(certificates) .set({ @@ -416,6 +418,9 @@ async function syncAcmeCerts( oldKeyPem ); } else { + logger.debug( + `acmeCertSync: inserting new certificate for ${domain} (expires ${expiresAt ? new Date(expiresAt * 1000).toISOString() : "unknown"})` + ); await db.insert(certificates).values({ domain, domainId, From 0473d5f639b3325d2c928fadc8bc9548fd03a588 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 12:18:50 -0700 Subject: [PATCH 011/131] Get the cert correctly --- server/private/routers/certificates/getCertificate.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/private/routers/certificates/getCertificate.ts b/server/private/routers/certificates/getCertificate.ts index 9e434b3e0..a8f14df68 100644 --- a/server/private/routers/certificates/getCertificate.ts +++ b/server/private/routers/certificates/getCertificate.ts @@ -62,7 +62,6 @@ async function query(domainId: string, domain: string) { .where( and( eq(certificates.domainId, domainId), - eq(certificates.wildcard, true), // only NS domains can have wildcard certs or( eq(certificates.domain, domain), eq(certificates.domain, domainLevelDown), From 48ddc700a00beda6d0b980ecfa8d6ec837cee2c5 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 13:40:31 -0700 Subject: [PATCH 012/131] Catch the domains the right way --- server/private/routers/certificates/getCertificate.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/server/private/routers/certificates/getCertificate.ts b/server/private/routers/certificates/getCertificate.ts index a8f14df68..d439011a7 100644 --- a/server/private/routers/certificates/getCertificate.ts +++ b/server/private/routers/certificates/getCertificate.ts @@ -41,7 +41,7 @@ async function query(domainId: string, domain: string) { } let existing: any[] = []; - if (domainRecord.type == "ns" || domainRecord.type == "wildcard") { // the manual "wildcard" domains can have wildcard certs + if (domainRecord.type == "ns" || domainRecord.type == "wildcard") { const domainLevelDown = domain.split(".").slice(1).join("."); const wildcardPrefixed = `*.${domainLevelDown}`; @@ -64,8 +64,13 @@ async function query(domainId: string, domain: string) { eq(certificates.domainId, domainId), or( eq(certificates.domain, domain), - eq(certificates.domain, domainLevelDown), - eq(certificates.domain, wildcardPrefixed) + and( + eq(certificates.wildcard, true), + or( + eq(certificates.domain, domainLevelDown), + eq(certificates.domain, wildcardPrefixed) + ) + ) ) ) ); From 9655f119a591aabdbb69b22f706565a03ae27935 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Fri, 24 Apr 2026 13:47:54 -0700 Subject: [PATCH 013/131] fix text --- messages/en-US.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/messages/en-US.json b/messages/en-US.json index 97b19552d..d6a39168d 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -3158,7 +3158,7 @@ "uptimeNoData": "No data", "uptimeMiniBarDown": "Down", "uptimeSectionTitle": "Uptime", - "uptimeSectionDescription": "Site availability over the last {days} days.", + "uptimeSectionDescription": "Availability over the last {days} days", "uptimeAddAlert": "Add Alert", "uptimeViewAlerts": "View Alerts", "uptimeCreateEmailAlert": "Create Email Alert", From 99f9b68efe9d7b4aa2cb71face414dbd6707fdd1 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Fri, 24 Apr 2026 14:53:11 -0700 Subject: [PATCH 014/131] fix full sudo mode calculation --- server/private/routers/ssh/signSshKey.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/private/routers/ssh/signSshKey.ts b/server/private/routers/ssh/signSshKey.ts index 82044c0ad..e29493a01 100644 --- a/server/private/routers/ssh/signSshKey.ts +++ b/server/private/routers/ssh/signSshKey.ts @@ -368,8 +368,8 @@ export async function signSshKey( const parsedSudoCommands: string[] = []; const parsedGroupsSet = new Set(); let homedir: boolean | null = null; - const sudoModeOrder = { none: 0, commands: 1, all: 2 }; - let sudoMode: "none" | "commands" | "all" = "none"; + const sudoModeOrder = { none: 0, commands: 1, full: 2 }; + let sudoMode: "none" | "commands" | "full" = "none"; for (const roleRow of roleRows) { try { const cmds = JSON.parse(roleRow?.sshSudoCommands ?? "[]"); @@ -386,7 +386,7 @@ export async function signSshKey( if (roleRow?.sshCreateHomeDir === true) homedir = true; const m = roleRow?.sshSudoMode ?? "none"; if (sudoModeOrder[m as keyof typeof sudoModeOrder] > sudoModeOrder[sudoMode]) { - sudoMode = m as "none" | "commands" | "all"; + sudoMode = m as "none" | "commands" | "full"; } } const parsedGroups = Array.from(parsedGroupsSet); From 2a5d8367477404b322510d1622cf4198e6f9268f Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 16:06:04 -0700 Subject: [PATCH 015/131] Fix gear icon --- .../settings/resources/proxy/create/page.tsx | 37 ++++--------------- 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/src/app/[orgId]/settings/resources/proxy/create/page.tsx b/src/app/[orgId]/settings/resources/proxy/create/page.tsx index 5f65b8578..a2cf36de6 100644 --- a/src/app/[orgId]/settings/resources/proxy/create/page.tsx +++ b/src/app/[orgId]/settings/resources/proxy/create/page.tsx @@ -694,19 +694,6 @@ export default function Page() { header: () => {t("healthCheck")}, cell: ({ row }) => { const status = row.original.hcHealth || "unknown"; - const isEnabled = row.original.hcEnabled; - - const getStatusColor = (status: string) => { - switch (status) { - case "healthy": - return "green"; - case "unhealthy": - return "red"; - case "unknown": - default: - return "secondary"; - } - }; const getStatusText = (status: string) => { switch (status) { @@ -720,19 +707,7 @@ export default function Page() { } }; - const getStatusIcon = (status: string) => { - switch (status) { - case "healthy": - return ; - case "unhealthy": - return ; - case "unknown": - default: - return null; - } - }; - - return ( + return (
{row.original.siteType === "newt" ? ( + ) : ( - )} From 15f02cf79a1dc890b87e33f2e0e4f52a4d5f1ee8 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 16:06:19 -0700 Subject: [PATCH 016/131] Quiet up messages --- server/routers/newt/handleSocketMessages.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/server/routers/newt/handleSocketMessages.ts b/server/routers/newt/handleSocketMessages.ts index 383ab5541..5d5497ee1 100644 --- a/server/routers/newt/handleSocketMessages.ts +++ b/server/routers/newt/handleSocketMessages.ts @@ -8,26 +8,26 @@ export const handleDockerStatusMessage: MessageHandler = async (context) => { const { message, client, sendToClient } = context; const newt = client as Newt; - logger.info("Handling Docker socket check response"); + logger.debug("Handling Docker socket check response"); if (!newt) { logger.warn("Newt not found"); return; } - logger.info(`Newt ID: ${newt.newtId}, Site ID: ${newt.siteId}`); + logger.debug(`Newt ID: ${newt.newtId}, Site ID: ${newt.siteId}`); const { available, socketPath } = message.data; - logger.info( + logger.debug( `Docker socket availability for Newt ${newt.newtId}: available=${available}, socketPath=${socketPath}` ); if (available) { - logger.info(`Newt ${newt.newtId} has Docker socket access`); + logger.debug(`Newt ${newt.newtId} has Docker socket access`); await cache.set(`${newt.newtId}:socketPath`, socketPath, 0); await cache.set(`${newt.newtId}:isAvailable`, available, 0); } else { - logger.warn(`Newt ${newt.newtId} does not have Docker socket access`); + logger.debug(`Newt ${newt.newtId} does not have Docker socket access`); } return; @@ -39,28 +39,28 @@ export const handleDockerContainersMessage: MessageHandler = async ( const { message, client, sendToClient } = context; const newt = client as Newt; - logger.info("Handling Docker containers response"); + logger.debug("Handling Docker containers response"); if (!newt) { logger.warn("Newt not found"); return; } - logger.info(`Newt ID: ${newt.newtId}, Site ID: ${newt.siteId}`); + logger.debug(`Newt ID: ${newt.newtId}, Site ID: ${newt.siteId}`); const { containers } = message.data; - logger.info( + logger.debug( `Docker containers for Newt ${newt.newtId}: ${containers ? containers.length : 0}` ); if (containers && containers.length > 0) { await cache.set(`${newt.newtId}:dockerContainers`, containers, 0); } else { - logger.warn(`Newt ${newt.newtId} does not have Docker containers`); + logger.debug(`Newt ${newt.newtId} does not have Docker containers`); } if (!newt.siteId) { - logger.warn("Newt has no site!"); + logger.debug("Newt has no site!"); return; } From 29f26021dfdecb8fd9ff07144abd0798d0133e44 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 16:07:44 -0700 Subject: [PATCH 017/131] Add the right pending record --- .../routers/certificates/createCertificate.ts | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/server/private/routers/certificates/createCertificate.ts b/server/private/routers/certificates/createCertificate.ts index 4f7bb7fe8..60ca2072a 100644 --- a/server/private/routers/certificates/createCertificate.ts +++ b/server/private/routers/certificates/createCertificate.ts @@ -37,18 +37,25 @@ export async function createCertificate( } let existing: Certificate[] = []; - if (domainRecord.type == "ns") { + if (domainRecord.type == "ns" || domainRecord.type == "wildcard") { const domainLevelDown = domain.split(".").slice(1).join("."); + const wildcardPrefixed = `*.${domainLevelDown}`; + existing = await trx .select() .from(certificates) .where( and( eq(certificates.domainId, domainId), - eq(certificates.wildcard, true), // only NS domains can have wildcard certs or( eq(certificates.domain, domain), - eq(certificates.domain, domainLevelDown) + and( + eq(certificates.wildcard, true), + or( + eq(certificates.domain, domainLevelDown), + eq(certificates.domain, wildcardPrefixed) + ) + ) ) ) ); @@ -70,11 +77,28 @@ export async function createCertificate( return; } + let domainToWrite = domain; + if ( + domainRecord.type == "wildcard" && + domainRecord.preferWildcardCert && + !domain.startsWith("*.") + ) { + // in this case traefik is going to generate a domain one level down so we need to store it that way + const parts = domain.split("."); + if (parts.length > 2) { + domainToWrite = parts.slice(1).join("."); + domainToWrite = `*.${domainToWrite}`; + } + } + // No cert found, create a new one in pending state await trx.insert(certificates).values({ - domain, + domain: domainToWrite, domainId, - wildcard: domainRecord.type == "ns", // we can only create wildcard certs for NS domains + wildcard: + domainRecord.type == "ns" || + (domainRecord.type == "wildcard" && + domainRecord.preferWildcardCert), // we can only create wildcard certs for NS domains status: "pending", updatedAt: Math.floor(Date.now() / 1000), createdAt: Math.floor(Date.now() / 1000) From 33f1662c91a5ff740edaae0165ff575461b9741b Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Fri, 24 Apr 2026 16:11:37 -0700 Subject: [PATCH 018/131] support site filter in private resources table --- .../siteResource/listAllSiteResourcesByOrg.ts | 35 ++++++- .../settings/resources/client/page.tsx | 36 ++++++++ src/components/ClientResourcesTable.tsx | 91 ++++++++++++++++++- 3 files changed, 157 insertions(+), 5 deletions(-) diff --git a/server/routers/siteResource/listAllSiteResourcesByOrg.ts b/server/routers/siteResource/listAllSiteResourcesByOrg.ts index 8750e7516..0a6166755 100644 --- a/server/routers/siteResource/listAllSiteResourcesByOrg.ts +++ b/server/routers/siteResource/listAllSiteResourcesByOrg.ts @@ -4,7 +4,7 @@ import logger from "@server/logger"; import { OpenAPITags, registry } from "@server/openApi"; import HttpCode from "@server/types/HttpCode"; import type { PaginatedResponse } from "@server/types/Pagination"; -import { and, asc, desc, eq, like, or, sql } from "drizzle-orm"; +import { and, asc, desc, eq, inArray, like, or, sql } from "drizzle-orm"; import { NextFunction, Request, Response } from "express"; import createHttpError from "http-errors"; import { z } from "zod"; @@ -68,6 +68,16 @@ const listAllSiteResourcesByOrgQuerySchema = z.object({ enum: ["asc", "desc"], default: "asc", description: "Sort order" + }), + siteId: z.coerce + .number() + .int() + .positive() + .optional() + .openapi({ + type: "integer", + description: + "When set, only site resources associated with this site (via network) are returned" }) }); @@ -199,10 +209,31 @@ export async function listAllSiteResourcesByOrg( } const { orgId } = parsedParams.data; - const { page, pageSize, query, mode, sort_by, order } = + const { page, pageSize, query, mode, sort_by, order, siteId } = parsedQuery.data; const conditions = [and(eq(siteResources.orgId, orgId))]; + + if (siteId != null) { + const resourcesForSite = db + .select({ id: siteResources.siteResourceId }) + .from(siteResources) + .innerJoin( + siteNetworks, + eq(siteResources.networkId, siteNetworks.networkId) + ) + .innerJoin(sites, eq(siteNetworks.siteId, sites.siteId)) + .where( + and( + eq(siteResources.orgId, orgId), + eq(sites.orgId, orgId), + eq(sites.siteId, siteId) + ) + ); + conditions.push( + inArray(siteResources.siteResourceId, resourcesForSite) + ); + } if (query) { conditions.push( or( diff --git a/src/app/[orgId]/settings/resources/client/page.tsx b/src/app/[orgId]/settings/resources/client/page.tsx index da967feea..42d4e69eb 100644 --- a/src/app/[orgId]/settings/resources/client/page.tsx +++ b/src/app/[orgId]/settings/resources/client/page.tsx @@ -7,7 +7,9 @@ import { authCookieHeader } from "@app/lib/api/cookies"; import { getCachedOrg } from "@app/lib/api/getCachedOrg"; import OrgProvider from "@app/providers/OrgProvider"; import type { ListResourcesResponse } from "@server/routers/resource"; +import { GetSiteResponse } from "@server/routers/site/getSite"; import type { ListAllSiteResourcesByOrgResponse } from "@server/routers/siteResource"; +import type ResponseT from "@server/types/Response"; import type { AxiosResponse } from "axios"; import { getTranslations } from "next-intl/server"; import type { Metadata } from "next"; @@ -22,6 +24,13 @@ export interface ClientResourcesPageProps { searchParams: Promise>; } +function parsePositiveInt(s: string | undefined): number | undefined { + if (!s) return undefined; + const n = Number(s); + if (!Number.isInteger(n) || n <= 0) return undefined; + return n; +} + export default async function ClientResourcesPage( props: ClientResourcesPageProps ) { @@ -47,6 +56,32 @@ export default async function ClientResourcesPage( pagination = responseData.pagination; } catch (e) {} + const siteIdParam = parsePositiveInt(searchParams.get("siteId") ?? undefined); + + let initialFilterSite: { + siteId: number; + name: string; + type: string; + } | null = null; + if (siteIdParam) { + try { + const siteRes = await internal.get( + `/site/${siteIdParam}`, + await authCookieHeader() + ); + const s = (siteRes.data as ResponseT).data; + if (s && s.orgId === params.orgId) { + initialFilterSite = { + siteId: s.siteId, + name: s.name, + type: s.type + }; + } + } catch { + // leave null + } + } + let org = null; try { const res = await getCachedOrg(params.orgId); @@ -114,6 +149,7 @@ export default async function ClientResourcesPage( pageIndex: pagination.page - 1, pageSize: pagination.pageSize }} + initialFilterSite={initialFilterSite} /> diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index 36f8caa78..b43cf1ac1 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -4,6 +4,7 @@ import ConfirmDeleteDialog from "@app/components/ConfirmDeleteDialog"; import CopyToClipboard from "@app/components/CopyToClipboard"; import { DataTable } from "@app/components/ui/data-table"; import { ExtendedColumnDef } from "@app/components/ui/data-table"; +import { Badge } from "@app/components/ui/badge"; import { Button } from "@app/components/ui/button"; import { DropdownMenu, @@ -12,6 +13,11 @@ import { DropdownMenuTrigger } from "@app/components/ui/dropdown-menu"; import { InfoPopup } from "@app/components/ui/info-popup"; +import { + Popover, + PopoverContent, + PopoverTrigger +} from "@app/components/ui/popover"; import { useEnvContext } from "@app/hooks/useEnvContext"; import { toast } from "@app/hooks/useToast"; import { createApiClient, formatAxiosError } from "@app/lib/api"; @@ -23,12 +29,14 @@ import { ArrowUpRight, ChevronDown, ChevronsUpDownIcon, + Funnel, MoreHorizontal } from "lucide-react"; import { useTranslations } from "next-intl"; import Link from "next/link"; import { useRouter } from "next/navigation"; -import { useState, useTransition } from "react"; +import { Selectedsite, SitesSelector } from "@app/components/site-selector"; +import { useMemo, useState, useTransition } from "react"; import CreateInternalResourceDialog from "@app/components/CreateInternalResourceDialog"; import EditInternalResourceDialog from "@app/components/EditInternalResourceDialog"; @@ -219,13 +227,15 @@ type ClientResourcesTableProps = { orgId: string; pagination: PaginationState; rowCount: number; + initialFilterSite?: Selectedsite | null; }; export default function ClientResourcesTable({ internalResources, orgId, pagination, - rowCount + rowCount, + initialFilterSite = null }: ClientResourcesTableProps) { const router = useRouter(); const { @@ -247,9 +257,26 @@ export default function ClientResourcesTable({ const [editingResource, setEditingResource] = useState(); const [isCreateDialogOpen, setIsCreateDialogOpen] = useState(false); + const [siteFilterOpen, setSiteFilterOpen] = useState(false); const [isRefreshing, startTransition] = useTransition(); + const siteIdQ = searchParams.get("siteId"); + const siteIdNum = siteIdQ ? parseInt(siteIdQ, 10) : NaN; + const selectedSite: Selectedsite | null = useMemo(() => { + if (!siteIdQ || !Number.isInteger(siteIdNum) || siteIdNum <= 0) { + return null; + } + if (initialFilterSite && initialFilterSite.siteId === siteIdNum) { + return initialFilterSite; + } + return { + siteId: siteIdNum, + name: t("standaloneHcFilterSiteIdFallback", { id: siteIdNum }), + type: "newt" + }; + }, [initialFilterSite, siteIdQ, siteIdNum, t]); + const refreshData = () => { startTransition(() => { try { @@ -391,7 +418,55 @@ export default function ClientResourcesTable({ id: "sites", accessorFn: (row) => row.sites.map((s) => s.siteName).join(", "), friendlyName: t("sites"), - header: () => {t("sites")}, + header: () => ( + + + + + +
+ +
+ +
+
+ ), cell: ({ row }) => { const resourceRow = row.original; return ( @@ -576,6 +651,16 @@ export default function ClientResourcesTable({ }); } + const clearSiteFilter = () => { + handleFilterChange("siteId", undefined); + setSiteFilterOpen(false); + }; + + const onPickSite = (site: Selectedsite) => { + handleFilterChange("siteId", String(site.siteId)); + setSiteFilterOpen(false); + }; + function toggleSort(column: string) { const newSearch = getNextSortOrder(column, searchParams); From 34296e5f404fb846d3fa4d5c430216e1eab03608 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 16:19:35 -0700 Subject: [PATCH 019/131] Fix health check status --- server/routers/target/handleHealthcheckStatusMessage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/routers/target/handleHealthcheckStatusMessage.ts b/server/routers/target/handleHealthcheckStatusMessage.ts index 50331deb8..c3bcb6d8e 100644 --- a/server/routers/target/handleHealthcheckStatusMessage.ts +++ b/server/routers/target/handleHealthcheckStatusMessage.ts @@ -101,7 +101,7 @@ export const handleHealthcheckStatusMessage: MessageHandler = async ( .where( and( eq(targetHealthCheck.targetHealthCheckId, targetIdNum), - eq(sites.siteId, newt.siteId) + eq(targetHealthCheck.siteId, newt.siteId) ) ) .limit(1); From 960ada4d66b15a337ddaeb17c8603e6388b1dd18 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Fri, 24 Apr 2026 16:24:26 -0700 Subject: [PATCH 020/131] add site column and filter to public resources --- server/routers/resource/listResources.ts | 67 +++++++++- .../[orgId]/settings/resources/proxy/page.tsx | 46 +++++-- src/components/ClientResourcesTable.tsx | 125 ++---------------- src/components/ProxyResourcesTable.tsx | 109 ++++++++++++++- src/components/ResourceSitesStatusCell.tsx | 123 +++++++++++++++++ 5 files changed, 339 insertions(+), 131 deletions(-) create mode 100644 src/components/ResourceSitesStatusCell.tsx diff --git a/server/routers/resource/listResources.ts b/server/routers/resource/listResources.ts index d1accfc9d..652c9112e 100644 --- a/server/routers/resource/listResources.ts +++ b/server/routers/resource/listResources.ts @@ -113,6 +113,16 @@ const listResourcesSchema = z.object({ enum: ["no_targets", "healthy", "degraded", "offline", "unknown"], description: "Filter resources based on health status of their targets. `healthy` means all targets are healthy. `degraded` means at least one target is unhealthy, but not all are unhealthy. `offline` means all targets are unhealthy. `unknown` means all targets have unknown health status. `no_targets` means the resource has no targets." + }), + siteId: z.coerce + .number() + .int() + .positive() + .optional() + .openapi({ + type: "integer", + description: + "When set, only resources that have at least one target on this site are returned" }) }); @@ -141,6 +151,12 @@ export type ResourceWithTargets = { healthStatus: "healthy" | "unhealthy" | "unknown" | null; siteName: string | null; }>; + sites: Array<{ + siteId: number; + siteName: string; + siteNiceId: string; + online: boolean; + }>; }; // Aggregate filters @@ -260,7 +276,8 @@ export async function listResources( query, healthStatus, sort_by, - order + order, + siteId } = parsedQuery.data; const parsedParams = listResourcesParamsSchema.safeParse(req.params); @@ -380,6 +397,19 @@ export async function listResources( } } + if (siteId != null) { + const resourcesWithSite = db + .select({ resourceId: targets.resourceId }) + .from(targets) + .innerJoin(sites, eq(targets.siteId, sites.siteId)) + .where( + and(eq(sites.orgId, orgId), eq(sites.siteId, siteId)) + ); + conditions.push( + inArray(resources.resourceId, resourcesWithSite) + ); + } + let aggregateFilters: SQL | undefined = sql`1 = 1`; if (typeof healthStatus !== "undefined") { @@ -444,12 +474,15 @@ export async function listResources( .select({ targetId: targets.targetId, resourceId: targets.resourceId, + siteId: targets.siteId, ip: targets.ip, port: targets.port, enabled: targets.enabled, healthStatus: targetHealthCheck.hcHealth, hcEnabled: targetHealthCheck.hcEnabled, - siteName: sites.name + siteName: sites.name, + siteNiceId: sites.niceId, + siteOnline: sites.online }) .from(targets) .where(inArray(targets.resourceId, resourceIdList)) @@ -481,7 +514,8 @@ export async function listResources( enabled: row.enabled, domainId: row.domainId, headerAuthId: row.headerAuthId, - targets: [] + targets: [], + sites: [] }; map.set(row.resourceId, entry); } @@ -491,6 +525,33 @@ export async function listResources( ); } + for (const entry of map.values()) { + const raw = allResourceTargets.filter( + (t) => t.resourceId === entry.resourceId + ); + const siteById = new Map< + number, + { + siteId: number; + siteName: string; + siteNiceId: string; + online: boolean; + } + >(); + for (const t of raw) { + if (typeof t.siteId !== "number" || siteById.has(t.siteId)) { + continue; + } + siteById.set(t.siteId, { + siteId: t.siteId, + siteName: t.siteName ?? "", + siteNiceId: t.siteNiceId ?? "", + online: Boolean(t.siteOnline) + }); + } + entry.sites = Array.from(siteById.values()); + } + const resourcesList: ResourceWithTargets[] = Array.from(map.values()); return response(res, { diff --git a/src/app/[orgId]/settings/resources/proxy/page.tsx b/src/app/[orgId]/settings/resources/proxy/page.tsx index cdbf959f4..ed76aafb7 100644 --- a/src/app/[orgId]/settings/resources/proxy/page.tsx +++ b/src/app/[orgId]/settings/resources/proxy/page.tsx @@ -7,7 +7,8 @@ import { authCookieHeader } from "@app/lib/api/cookies"; import OrgProvider from "@app/providers/OrgProvider"; import type { GetOrgResponse } from "@server/routers/org"; import type { ListResourcesResponse } from "@server/routers/resource"; -import type { ListAllSiteResourcesByOrgResponse } from "@server/routers/siteResource"; +import { GetSiteResponse } from "@server/routers/site/getSite"; +import type ResponseT from "@server/types/Response"; import type { AxiosResponse } from "axios"; import { getTranslations } from "next-intl/server"; import { redirect } from "next/navigation"; @@ -24,6 +25,13 @@ export interface ProxyResourcesPageProps { searchParams: Promise>; } +function parsePositiveInt(s: string | undefined): number | undefined { + if (!s) return undefined; + const n = Number(s); + if (!Number.isInteger(n) || n <= 0) return undefined; + return n; +} + export default async function ProxyResourcesPage( props: ProxyResourcesPageProps ) { @@ -47,13 +55,31 @@ export default async function ProxyResourcesPage( pagination = responseData.pagination; } catch (e) {} - let siteResources: ListAllSiteResourcesByOrgResponse["siteResources"] = []; - try { - const res = await internal.get< - AxiosResponse - >(`/org/${params.orgId}/site-resources`, await authCookieHeader()); - siteResources = res.data.data.siteResources; - } catch (e) {} + const siteIdParam = parsePositiveInt(searchParams.get("siteId") ?? undefined); + + let initialFilterSite: { + siteId: number; + name: string; + type: string; + } | null = null; + if (siteIdParam) { + try { + const siteRes = await internal.get( + `/site/${siteIdParam}`, + await authCookieHeader() + ); + const s = (siteRes.data as ResponseT).data; + if (s && s.orgId === params.orgId) { + initialFilterSite = { + siteId: s.siteId, + name: s.name, + type: s.type + }; + } + } catch { + // leave null + } + } let org = null; try { @@ -102,7 +128,8 @@ export default async function ProxyResourcesPage( enabled: target.enabled, healthStatus: target.healthStatus, siteName: target.siteName - })) + })), + sites: resource.sites ?? [] }; }); return ( @@ -123,6 +150,7 @@ export default async function ProxyResourcesPage( pageIndex: pagination.page - 1, pageSize: pagination.pageSize }} + initialFilterSite={initialFilterSite} /> diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index b43cf1ac1..9866e444f 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -48,13 +48,12 @@ import { useNavigationContext } from "@app/hooks/useNavigationContext"; import { useDebouncedCallback } from "use-debounce"; import { ColumnFilterButton } from "./ColumnFilterButton"; import { cn } from "@app/lib/cn"; +import { + ResourceSitesStatusCell, + type ResourceSiteRow +} from "@app/components/ResourceSitesStatusCell"; -export type InternalResourceSiteRow = { - siteId: number; - siteName: string; - siteNiceId: string; - online: boolean; -}; +export type InternalResourceSiteRow = ResourceSiteRow; export type InternalResourceRow = { id: number; @@ -119,109 +118,6 @@ function isSafeUrlForLink(href: string): boolean { } } -type AggregateSitesStatus = "allOnline" | "partial" | "allOffline"; - -function aggregateSitesStatus( - resourceSites: InternalResourceSiteRow[] -): AggregateSitesStatus { - if (resourceSites.length === 0) { - return "allOffline"; - } - const onlineCount = resourceSites.filter((rs) => rs.online).length; - if (onlineCount === resourceSites.length) return "allOnline"; - if (onlineCount > 0) return "partial"; - return "allOffline"; -} - -function aggregateStatusDotClass(status: AggregateSitesStatus): string { - switch (status) { - case "allOnline": - return "bg-green-500"; - case "partial": - return "bg-yellow-500"; - case "allOffline": - default: - return "bg-neutral-500"; - } -} - -function ClientResourceSitesStatusCell({ - orgId, - resourceSites -}: { - orgId: string; - resourceSites: InternalResourceSiteRow[]; -}) { - const t = useTranslations(); - - if (resourceSites.length === 0) { - return -; - } - - const aggregate = aggregateSitesStatus(resourceSites); - const countLabel = t("multiSitesSelectorSitesCount", { - count: resourceSites.length - }); - - return ( - - - - - - {resourceSites.map((site) => { - const isOnline = site.online; - return ( - - -
-
- - {site.siteName} - -
- - {isOnline ? t("online") : t("offline")} - - - - ); - })} - - - ); -} - type ClientResourcesTableProps = { internalResources: InternalResourceRow[]; orgId: string; @@ -321,9 +217,7 @@ export default function ClientResourcesTable({ if (siteNames.length === 1) { return ( - + + + +
+ +
+ +
+ + ), + cell: ({ row }) => ( + + ) + }, { accessorKey: "protocol", friendlyName: t("protocol"), @@ -620,6 +715,16 @@ export default function ProxyResourcesTable({ }); } + const clearSiteFilter = () => { + handleFilterChange("siteId", undefined); + setSiteFilterOpen(false); + }; + + const onPickSite = (site: Selectedsite) => { + handleFilterChange("siteId", String(site.siteId)); + setSiteFilterOpen(false); + }; + function toggleSort(column: string) { const newSearch = getNextSortOrder(column, searchParams); diff --git a/src/components/ResourceSitesStatusCell.tsx b/src/components/ResourceSitesStatusCell.tsx new file mode 100644 index 000000000..3c940c6b0 --- /dev/null +++ b/src/components/ResourceSitesStatusCell.tsx @@ -0,0 +1,123 @@ +"use client"; + +import { Button } from "@app/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger +} from "@app/components/ui/dropdown-menu"; +import { cn } from "@app/lib/cn"; +import { ChevronDown } from "lucide-react"; +import { useTranslations } from "next-intl"; +import Link from "next/link"; + +export type ResourceSiteRow = { + siteId: number; + siteName: string; + siteNiceId: string; + online: boolean; +}; + +type AggregateSitesStatus = "allOnline" | "partial" | "allOffline"; + +function aggregateSitesStatus( + resourceSites: ResourceSiteRow[] +): AggregateSitesStatus { + if (resourceSites.length === 0) { + return "allOffline"; + } + const onlineCount = resourceSites.filter((rs) => rs.online).length; + if (onlineCount === resourceSites.length) return "allOnline"; + if (onlineCount > 0) return "partial"; + return "allOffline"; +} + +function aggregateStatusDotClass(status: AggregateSitesStatus): string { + switch (status) { + case "allOnline": + return "bg-green-500"; + case "partial": + return "bg-yellow-500"; + case "allOffline": + default: + return "bg-neutral-500"; + } +} + +export function ResourceSitesStatusCell({ + orgId, + resourceSites +}: { + orgId: string; + resourceSites: ResourceSiteRow[]; +}) { + const t = useTranslations(); + + if (resourceSites.length === 0) { + return -; + } + + const aggregate = aggregateSitesStatus(resourceSites); + const countLabel = t("multiSitesSelectorSitesCount", { + count: resourceSites.length + }); + + return ( + + + + + + {resourceSites.map((site) => { + const isOnline = site.online; + return ( + + +
+
+ + {site.siteName} + +
+ + {isOnline ? t("online") : t("offline")} + + + + ); + })} + + + ); +} From a2c76cbb24ddfec5024ffa21c5f661f06fe905a4 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Fri, 24 Apr 2026 16:44:57 -0700 Subject: [PATCH 021/131] set standard filter popover width --- src/components/ClientResourcesTable.tsx | 3 ++- src/components/ColumnFilter.tsx | 6 +++++- src/components/ColumnFilterButton.tsx | 6 +++++- src/components/ColumnMultiFilterButton.tsx | 6 +++++- src/components/HealthChecksTable.tsx | 5 +++-- src/components/ProxyResourcesTable.tsx | 3 ++- src/components/ui/controlled-data-table.tsx | 5 ++++- src/components/ui/data-table.tsx | 5 ++++- src/lib/dataTableFilterPopover.ts | 5 +++++ 9 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 src/lib/dataTableFilterPopover.ts diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index 9866e444f..f10f6414e 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -48,6 +48,7 @@ import { useNavigationContext } from "@app/hooks/useNavigationContext"; import { useDebouncedCallback } from "use-debounce"; import { ColumnFilterButton } from "./ColumnFilterButton"; import { cn } from "@app/lib/cn"; +import { dataTableFilterPopoverContentClassName } from "@app/lib/dataTableFilterPopover"; import { ResourceSitesStatusCell, type ResourceSiteRow @@ -336,7 +337,7 @@ export default function ClientResourcesTable({
diff --git a/src/components/ColumnFilter.tsx b/src/components/ColumnFilter.tsx index 3e7b585b8..5a944cd88 100644 --- a/src/components/ColumnFilter.tsx +++ b/src/components/ColumnFilter.tsx @@ -15,6 +15,7 @@ import { } from "@app/components/ui/command"; import { CheckIcon, ChevronDownIcon, Filter } from "lucide-react"; import { cn } from "@app/lib/cn"; +import { dataTableFilterPopoverContentClassName } from "@app/lib/dataTableFilterPopover"; import { Badge } from "./ui/badge"; interface FilterOption { @@ -74,7 +75,10 @@ export function ColumnFilter({ - + diff --git a/src/components/ColumnFilterButton.tsx b/src/components/ColumnFilterButton.tsx index 7d17066cb..689f78983 100644 --- a/src/components/ColumnFilterButton.tsx +++ b/src/components/ColumnFilterButton.tsx @@ -15,6 +15,7 @@ import { } from "@app/components/ui/command"; import { CheckIcon, ChevronDownIcon, Funnel } from "lucide-react"; import { cn } from "@app/lib/cn"; +import { dataTableFilterPopoverContentClassName } from "@app/lib/dataTableFilterPopover"; import { Badge } from "./ui/badge"; interface FilterOption { @@ -75,7 +76,10 @@ export function ColumnFilterButton({
- + diff --git a/src/components/ColumnMultiFilterButton.tsx b/src/components/ColumnMultiFilterButton.tsx index ee386461d..787a306b2 100644 --- a/src/components/ColumnMultiFilterButton.tsx +++ b/src/components/ColumnMultiFilterButton.tsx @@ -18,6 +18,7 @@ import { } from "@app/components/ui/command"; import { CheckIcon, Funnel } from "lucide-react"; import { cn } from "@app/lib/cn"; +import { dataTableFilterPopoverContentClassName } from "@app/lib/dataTableFilterPopover"; import { Badge } from "./ui/badge"; type FilterOption = { @@ -101,7 +102,10 @@ export function ColumnMultiFilterButton({
- + diff --git a/src/components/HealthChecksTable.tsx b/src/components/HealthChecksTable.tsx index 404ade547..9545cbb7d 100644 --- a/src/components/HealthChecksTable.tsx +++ b/src/components/HealthChecksTable.tsx @@ -50,6 +50,7 @@ import { PaidFeaturesAlert } from "@app/components/PaidFeaturesAlert"; import { usePaidStatus } from "@app/hooks/usePaidStatus"; import { tierMatrix } from "@server/lib/billing/tierMatrix"; import { cn } from "@app/lib/cn"; +import { dataTableFilterPopoverContentClassName } from "@app/lib/dataTableFilterPopover"; type StandaloneHealthChecksTableProps = { orgId: string; @@ -376,7 +377,7 @@ export default function HealthChecksTable({
@@ -445,7 +446,7 @@ export default function HealthChecksTable({
diff --git a/src/components/ProxyResourcesTable.tsx b/src/components/ProxyResourcesTable.tsx index b5daa5850..efbd2db01 100644 --- a/src/components/ProxyResourcesTable.tsx +++ b/src/components/ProxyResourcesTable.tsx @@ -26,6 +26,7 @@ import { useEnvContext } from "@app/hooks/useEnvContext"; import { useNavigationContext } from "@app/hooks/useNavigationContext"; import { Selectedsite, SitesSelector } from "@app/components/site-selector"; import { cn } from "@app/lib/cn"; +import { dataTableFilterPopoverContentClassName } from "@app/lib/dataTableFilterPopover"; import { getNextSortOrder, getSortDirection } from "@app/lib/sortColumn"; import { toast } from "@app/hooks/useToast"; import { createApiClient, formatAxiosError } from "@app/lib/api"; @@ -441,7 +442,7 @@ export default function ProxyResourcesTable({
diff --git a/src/components/ui/controlled-data-table.tsx b/src/components/ui/controlled-data-table.tsx index 58081783a..1f7683adc 100644 --- a/src/components/ui/controlled-data-table.tsx +++ b/src/components/ui/controlled-data-table.tsx @@ -33,6 +33,7 @@ import { } from "@app/components/ui/dropdown-menu"; import { Input } from "@app/components/ui/input"; import { useStoredColumnVisibility } from "@app/hooks/useStoredColumnVisibility"; +import { dataTableFilterDropdownContentClassName } from "@app/lib/dataTableFilterPopover"; import { ChevronDown, @@ -345,7 +346,9 @@ export function ControlledDataTable({ {filter.label} diff --git a/src/components/ui/data-table.tsx b/src/components/ui/data-table.tsx index 2b2861bb5..673388454 100644 --- a/src/components/ui/data-table.tsx +++ b/src/components/ui/data-table.tsx @@ -34,6 +34,7 @@ import { Button } from "@app/components/ui/button"; import { useEffect, useMemo, useRef, useState } from "react"; import { Input } from "@app/components/ui/input"; import { DataTablePagination } from "@app/components/DataTablePagination"; +import { dataTableFilterDropdownContentClassName } from "@app/lib/dataTableFilterPopover"; import { ChevronDown, Plus, Search, RefreshCw, Columns, Filter } from "lucide-react"; import { Card, @@ -603,7 +604,9 @@ export function DataTable({ {filter.label} diff --git a/src/lib/dataTableFilterPopover.ts b/src/lib/dataTableFilterPopover.ts new file mode 100644 index 000000000..606527209 --- /dev/null +++ b/src/lib/dataTableFilterPopover.ts @@ -0,0 +1,5 @@ +export const dataTableFilterPopoverContentClassName = + "w-[min(16rem,calc(100vw-2rem))] p-0"; + +export const dataTableFilterDropdownContentClassName = + "w-[min(16rem,calc(100vw-2rem))]"; From b509c8aeecac72bc9b895508d0a0af3624cba4eb Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Fri, 24 Apr 2026 16:57:53 -0700 Subject: [PATCH 022/131] dont distribute info section cols --- src/components/InfoSection.tsx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/components/InfoSection.tsx b/src/components/InfoSection.tsx index b00503c3d..7203236e1 100644 --- a/src/components/InfoSection.tsx +++ b/src/components/InfoSection.tsx @@ -4,18 +4,29 @@ import { cn } from "@app/lib/cn"; export function InfoSections({ children, - cols + cols, + columnSizing = "content" }: { children: React.ReactNode; cols?: number; + /** content (default): fixed gap, columns hug content, left-aligned; fill: equal-width columns across the row */ + columnSizing?: "fill" | "content"; }) { + const n = cols || 1; + const track = + columnSizing === "fill" ? "minmax(0, 1fr)" : "minmax(0, max-content)"; + return (
{children} From 07154d2a16011e627c09ee79ba2b7957acf16eec Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Fri, 24 Apr 2026 17:07:11 -0700 Subject: [PATCH 023/131] add links to view resources on site --- .cursor/rules/Localization.mdc | 5 +++++ .cursor/rules/Nomenclature.mdc | 6 ++++++ messages/en-US.json | 2 ++ src/components/SitesTable.tsx | 20 +++++++++++++++++--- 4 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 .cursor/rules/Localization.mdc create mode 100644 .cursor/rules/Nomenclature.mdc diff --git a/.cursor/rules/Localization.mdc b/.cursor/rules/Localization.mdc new file mode 100644 index 000000000..3014c6177 --- /dev/null +++ b/.cursor/rules/Localization.mdc @@ -0,0 +1,5 @@ +--- +alwaysApply: true +--- + +Always localize strings and use the `t` function to convert keys to strings. Add the keys to the en-us.json file. Never edit the other language files, as en-us.json is the single source of truth. diff --git a/.cursor/rules/Nomenclature.mdc b/.cursor/rules/Nomenclature.mdc new file mode 100644 index 000000000..33c4af797 --- /dev/null +++ b/.cursor/rules/Nomenclature.mdc @@ -0,0 +1,6 @@ +--- +alwaysApply: true +--- + +Proxy resources = public resources +Private resources = client resources diff --git a/messages/en-US.json b/messages/en-US.json index d6a39168d..5a616f07a 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "I have copied the config", "searchSitesProgress": "Search sites...", "siteAdd": "Add Site", + "sitesTableViewPublicResources": "View Public Resources", + "sitesTableViewPrivateResources": "View Private Resources", "siteInstallNewt": "Install Site", "siteInstallNewtDescription": "Install the site connector for your system", "WgConfiguration": "WireGuard Configuration", diff --git a/src/components/SitesTable.tsx b/src/components/SitesTable.tsx index d59244552..45c0d9a0b 100644 --- a/src/components/SitesTable.tsx +++ b/src/components/SitesTable.tsx @@ -239,9 +239,7 @@ export default function SitesTable({ if (originalRow.type == "local") { return -; } - return ( - - ); + return ; } }, { @@ -437,6 +435,22 @@ export default function SitesTable({ {t("viewSettings")} + + + {t("sitesTableViewPublicResources")} + + + + + {t("sitesTableViewPrivateResources")} + + { setSelectedSite(siteRow); From cca7cea2f1afa429addcff355664d79bb2746029 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 17:30:54 -0700 Subject: [PATCH 024/131] Handeling the different health status --- messages/en-US.json | 3 +- .../lib/alerts/events/healthCheckEvents.ts | 14 +++- .../routers/healthChecks/createHealthCheck.ts | 3 +- .../routers/healthChecks/updateHealthCheck.ts | 31 ++++++++ server/routers/resource/createResource.ts | 3 +- server/routers/resource/listResources.ts | 66 ++--------------- server/routers/target/createTarget.ts | 2 +- server/routers/target/updateTarget.ts | 66 ++++++++--------- src/components/ProxyResourcesTable.tsx | 72 +++++++------------ 9 files changed, 112 insertions(+), 148 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index d6a39168d..99e4d09e5 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -1974,10 +1974,9 @@ "resourcesTableAliasAddressInfo": "This address is part of the organization's utility subnet. It's used to resolve alias records using internal DNS resolution.", "resourcesTableClients": "Clients", "resourcesTableAndOnlyAccessibleInternally": "and are only accessible internally when connected with a client.", - "resourcesTableNoTargets": "No targets", "resourcesTableHealthy": "Healthy", "resourcesTableDegraded": "Degraded", - "resourcesTableOffline": "Offline", + "resourcesTableUnhealthy": "Unhealthy", "resourcesTableUnknown": "Unknown", "resourcesTableNotMonitored": "Not monitored", "editInternalResourceDialogEditClientResource": "Edit Private Resource", diff --git a/server/private/lib/alerts/events/healthCheckEvents.ts b/server/private/lib/alerts/events/healthCheckEvents.ts index 4851f08c4..9b5c3104b 100644 --- a/server/private/lib/alerts/events/healthCheckEvents.ts +++ b/server/private/lib/alerts/events/healthCheckEvents.ts @@ -173,15 +173,25 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null const otherTargets = await trx .select({ hcHealth: targetHealthCheck.hcHealth }) .from(targets) + .innerJoin(targetHealthCheck, eq(targetHealthCheck.targetId, targets.targetId)) .where(eq(targets.resourceId, resource.resourceId)); let health = "healthy"; const allHealthy = otherTargets.every((t) => t.hcHealth === "healthy"); - if (!allHealthy) { + const allUnhealthy = otherTargets.every((t) => t.hcHealth === "unhealthy"); + + if (allHealthy) { + health = "healthy"; + } else if (allUnhealthy) { logger.debug( - `Not marking resource ${resource.resourceId} as healthy because not all targets are healthy` + `Marking resource ${resource.resourceId} as unhealthy because all targets are unhealthy` ); health = "unhealthy"; + } else { + logger.debug( + `Marking resource ${resource.resourceId} as degraded because some targets are unhealthy` + ); + health = "degraded"; } if (health != resource.health) { diff --git a/server/private/routers/healthChecks/createHealthCheck.ts b/server/private/routers/healthChecks/createHealthCheck.ts index 374ec4ba4..ada583a70 100644 --- a/server/private/routers/healthChecks/createHealthCheck.ts +++ b/server/private/routers/healthChecks/createHealthCheck.ts @@ -141,7 +141,8 @@ export async function createHealthCheck( hcStatus: hcStatus ?? null, hcTlsServerName: hcTlsServerName ?? null, hcHealthyThreshold, - hcUnhealthyThreshold + hcUnhealthyThreshold, + hcHealth: "unhealthy" }) .returning(); diff --git a/server/private/routers/healthChecks/updateHealthCheck.ts b/server/private/routers/healthChecks/updateHealthCheck.ts index 713bf1e03..47a9518a9 100644 --- a/server/private/routers/healthChecks/updateHealthCheck.ts +++ b/server/private/routers/healthChecks/updateHealthCheck.ts @@ -166,6 +166,17 @@ export async function updateHealthCheck( const updateData: Record = {}; + const [existingHealthCheck] = await db + .select() + .from(targetHealthCheck) + .where( + and( + eq(targetHealthCheck.targetHealthCheckId, healthCheckId), + eq(targetHealthCheck.orgId, orgId) + ) + ) + .limit(1); + if (name !== undefined) updateData.name = name; if (siteId !== undefined) updateData.siteId = siteId; if (hcEnabled !== undefined) updateData.hcEnabled = hcEnabled; @@ -190,6 +201,26 @@ export async function updateHealthCheck( if (hcUnhealthyThreshold !== undefined) updateData.hcUnhealthyThreshold = hcUnhealthyThreshold; + const hcEnabledTurnedOn = + parsedBody.data.hcEnabled === true && + existingHealthCheck.hcEnabled === false; + + let hcHealthValue: "unknown" | "healthy" | "unhealthy" | undefined; + if ( + parsedBody.data.hcEnabled === false || + parsedBody.data.hcEnabled === null + ) { + hcHealthValue = "unknown"; + } else if (hcEnabledTurnedOn) { + hcHealthValue = "unhealthy"; + } else { + hcHealthValue = undefined; + } + + if (hcHealthValue) { + updateData.hcHealth = hcHealthValue; + } + const [updated] = await db .update(targetHealthCheck) .set(updateData) diff --git a/server/routers/resource/createResource.ts b/server/routers/resource/createResource.ts index 85e607211..f8b7551e9 100644 --- a/server/routers/resource/createResource.ts +++ b/server/routers/resource/createResource.ts @@ -327,7 +327,8 @@ async function createHttpResource( ssl: true, stickySession: stickySession, postAuthPath: postAuthPath, - wildcard + wildcard, + health: "unknown" }) .returning(); diff --git a/server/routers/resource/listResources.ts b/server/routers/resource/listResources.ts index d1accfc9d..e6889d285 100644 --- a/server/routers/resource/listResources.ts +++ b/server/routers/resource/listResources.ts @@ -105,7 +105,7 @@ const listResourcesSchema = z.object({ "Filter resources based on authentication state. `protected` means the resource has at least one auth mechanism (password, pincode, header auth, SSO, or email whitelist). `not_protected` means the resource has no auth mechanisms. `none` means the resource is not protected by HTTP (i.e. it has no auth mechanisms and http is false)." }), healthStatus: z - .enum(["no_targets", "healthy", "degraded", "offline", "unknown"]) + .enum(["healthy", "degraded", "unhealthy", "unknown"]) .optional() .catch(undefined) .openapi({ @@ -143,27 +143,6 @@ export type ResourceWithTargets = { }>; }; -// Aggregate filters -const total_targets = count(targets.targetId); -const healthy_targets = sql`SUM( - CASE - WHEN ${targetHealthCheck.hcHealth} = 'healthy' THEN 1 - ELSE 0 - END - ) `; -const unknown_targets = sql`SUM( - CASE - WHEN ${targetHealthCheck.hcHealth} = 'unknown' THEN 1 - ELSE 0 - END - ) `; -const unhealthy_targets = sql`SUM( - CASE - WHEN ${targetHealthCheck.hcHealth} = 'unhealthy' THEN 1 - ELSE 0 - END - ) `; - function queryResourcesBase() { return db .select({ @@ -183,7 +162,8 @@ function queryResourcesBase() { niceId: resources.niceId, headerAuthId: resourceHeaderAuth.headerAuthId, headerAuthExtendedCompatibilityId: - resourceHeaderAuthExtendedCompatibility.headerAuthExtendedCompatibilityId + resourceHeaderAuthExtendedCompatibility.headerAuthExtendedCompatibilityId, + health: resources.health }) .from(resources) .leftJoin( @@ -378,46 +358,12 @@ export async function listResources( ); break; } - } - - let aggregateFilters: SQL | undefined = sql`1 = 1`; - - if (typeof healthStatus !== "undefined") { - switch (healthStatus) { - case "healthy": - aggregateFilters = and( - sql`${total_targets} > 0`, - sql`${healthy_targets} = ${total_targets}` - ); - break; - case "degraded": - aggregateFilters = and( - sql`${total_targets} > 0`, - sql`${unhealthy_targets} > 0` - ); - break; - case "no_targets": - aggregateFilters = sql`${total_targets} = 0`; - break; - case "offline": - aggregateFilters = and( - sql`${total_targets} > 0`, - sql`${healthy_targets} = 0`, - sql`${unhealthy_targets} = ${total_targets}` - ); - break; - case "unknown": - aggregateFilters = and( - sql`${total_targets} > 0`, - sql`${unknown_targets} = ${total_targets}` - ); - break; + if (typeof healthStatus !== "undefined") { + conditions.push(eq(resources.health, healthStatus)); } } - const baseQuery = queryResourcesBase() - .where(and(...conditions)) - .having(aggregateFilters); + const baseQuery = queryResourcesBase().where(and(...conditions)); // we need to add `as` so that drizzle filters the result as a subquery const countQuery = db.$count(baseQuery.as("filtered_resources")); diff --git a/server/routers/target/createTarget.ts b/server/routers/target/createTarget.ts index e5c1f246e..e37f12490 100644 --- a/server/routers/target/createTarget.ts +++ b/server/routers/target/createTarget.ts @@ -245,7 +245,7 @@ export async function createTarget( hcFollowRedirects: targetData.hcFollowRedirects ?? null, hcMethod: targetData.hcMethod ?? null, hcStatus: targetData.hcStatus ?? null, - hcHealth: "unknown", + hcHealth: targetData.hcEnabled ? "unhealthy" : "unknown", hcTlsServerName: targetData.hcTlsServerName ?? null, hcHealthyThreshold: targetData.hcHealthyThreshold ?? null, hcUnhealthyThreshold: targetData.hcUnhealthyThreshold ?? null diff --git a/server/routers/target/updateTarget.ts b/server/routers/target/updateTarget.ts index a633deb4d..dad302de8 100644 --- a/server/routers/target/updateTarget.ts +++ b/server/routers/target/updateTarget.ts @@ -13,7 +13,7 @@ import { addTargets } from "../newt/targets"; import { pickPort } from "./helpers"; import { isTargetValid } from "@server/lib/validators"; import { OpenAPITags, registry } from "@server/openApi"; -import { vs } from "@react-email/components"; + const updateTargetParamsSchema = z.strictObject({ targetId: z.string().transform(Number).pipe(z.int().positive()) @@ -153,32 +153,6 @@ export async function updateTarget( ); } - const targetData = { - ...target, - ...parsedBody.data - }; - - const existingTargets = await db - .select() - .from(targets) - .where(eq(targets.resourceId, target.resourceId)); - - const foundTarget = existingTargets.find( - (target) => - target.targetId !== targetId && // Exclude the current target being updated - target.ip === targetData.ip && - target.port === targetData.port && - target.method === targetData.method && - target.siteId === targetData.siteId - ); - - if (foundTarget) { - // log a warning - logger.warn( - `Target with IP ${targetData.ip}, port ${targetData.port}, method ${targetData.method} already exists for resource ID ${target.resourceId}` - ); - } - const { internalPort, targetIps } = await pickPort(site.siteId!, db); if (!internalPort) { @@ -210,20 +184,46 @@ export async function updateTarget( .where(eq(targets.targetId, targetId)) .returning(); + const [existingHc] = await db + .select() + .from(targetHealthCheck) + .where(eq(targetHealthCheck.targetId, targetId)) + .limit(1); + + if (!existingHc) { + return next( + createHttpError( + HttpCode.NOT_FOUND, + `Health check for target with ID ${targetId} not found` + ) + ); + } + let hcHeaders = null; if (parsedBody.data.hcHeaders) { hcHeaders = JSON.stringify(parsedBody.data.hcHeaders); } // When health check is disabled, reset hcHealth to "unknown" - // to prevent previously unhealthy targets from being excluded - // Also when the site is not a newt, set hcHealth to "unknown" - const hcHealthValue = + // to prevent previously unhealthy targets from being excluded. + // Also when the site is not a newt, set hcHealth to "unknown". + // If hcEnabled is being turned on (was false, now true), set to "unhealthy" + // so the target must pass a health check before being considered healthy. + const hcEnabledTurnedOn = + parsedBody.data.hcEnabled === true && existingHc.hcEnabled === false; + + let hcHealthValue: "unknown" | "healthy" | "unhealthy" | undefined; + if ( parsedBody.data.hcEnabled === false || parsedBody.data.hcEnabled === null || site.type !== "newt" - ? "unknown" - : undefined; + ) { + hcHealthValue = "unknown"; + } else if (hcEnabledTurnedOn) { + hcHealthValue = "unhealthy"; + } else { + hcHealthValue = undefined; + } const [updatedHc] = await db .update(targetHealthCheck) @@ -245,7 +245,7 @@ export async function updateTarget( hcTlsServerName: parsedBody.data.hcTlsServerName, hcHealthyThreshold: parsedBody.data.hcHealthyThreshold, hcUnhealthyThreshold: parsedBody.data.hcUnhealthyThreshold, - ...(hcHealthValue !== undefined && { hcHealth: hcHealthValue }) + hcHealth: hcHealthValue }) .where(eq(targetHealthCheck.targetId, targetId)) .returning(); diff --git a/src/components/ProxyResourcesTable.tsx b/src/components/ProxyResourcesTable.tsx index dddf1312c..ff0a6ad5b 100644 --- a/src/components/ProxyResourcesTable.tsx +++ b/src/components/ProxyResourcesTable.tsx @@ -83,54 +83,24 @@ export type ResourceRow = { targetHost?: string; targetPort?: number; targets?: TargetHealth[]; + health?: "online" | "degraded" | "unhealthy" | "unknown"; }; -function getOverallHealthStatus( - targets?: TargetHealth[] -): "online" | "degraded" | "offline" | "unknown" { - if (!targets || targets.length === 0) { - return "unknown"; - } - - const monitoredTargets = targets.filter( - (t) => t.enabled && t.healthStatus && t.healthStatus !== "unknown" - ); - - if (monitoredTargets.length === 0) { - return "unknown"; - } - - const healthyCount = monitoredTargets.filter( - (t) => t.healthStatus === "healthy" - ).length; - const unhealthyCount = monitoredTargets.filter( - (t) => t.healthStatus === "unhealthy" - ).length; - - if (healthyCount === monitoredTargets.length) { - return "online"; - } else if (unhealthyCount === monitoredTargets.length) { - return "offline"; - } else { - return "degraded"; - } -} - function StatusIcon({ status, className = "" }: { - status: "online" | "degraded" | "offline" | "unknown"; + status: string | undefined | null; className?: string; }) { const iconClass = `h-4 w-4 ${className}`; switch (status) { - case "online": + case "healthy": return ; case "degraded": return ; - case "offline": + case "unhealthy": return ; case "unknown": return ; @@ -231,12 +201,18 @@ export default function ProxyResourcesTable({ } } - function TargetStatusCell({ targets }: { targets?: TargetHealth[] }) { - const overallStatus = getOverallHealthStatus(targets); + function TargetStatusCell({ + targets, + healthStatus + }: { + targets?: TargetHealth[]; + healthStatus?: string; + }) { + const overallStatus = healthStatus; if (!targets || targets.length === 0) { return ( -
+
{t("resourcesTableNoTargets")} @@ -266,8 +242,8 @@ export default function ProxyResourcesTable({ t("resourcesTableHealthy")} {overallStatus === "degraded" && t("resourcesTableDegraded")} - {overallStatus === "offline" && - t("resourcesTableOffline")} + {overallStatus === "unhealthy" && + t("resourcesTableUnhealthy")} {overallStatus === "unknown" && t("resourcesTableUnknown")} @@ -405,10 +381,9 @@ export default function ProxyResourcesTable({ value: "degraded", label: t("resourcesTableDegraded") }, - { value: "offline", label: t("resourcesTableOffline") }, { - value: "no_targets", - label: t("resourcesTableNoTargets") + value: "unhealty", + label: t("resourcesTableUnhealthy") }, { value: "unknown", label: t("resourcesTableUnknown") } ]} @@ -429,12 +404,15 @@ export default function ProxyResourcesTable({ return ; }, sortingFn: (rowA, rowB) => { - const statusA = getOverallHealthStatus(rowA.original.targets); - const statusB = getOverallHealthStatus(rowB.original.targets); + const statusA = rowA.original.health; + const statusB = rowB.original.health; + if (!statusA && !statusB) return 0; + if (!statusA) return 1; + if (!statusB) return -1; const statusOrder = { online: 3, degraded: 2, - offline: 1, + unhealthy: 1, unknown: 0 }; return statusOrder[statusA] - statusOrder[statusB]; @@ -446,9 +424,7 @@ export default function ProxyResourcesTable({ header: () => {t("uptime30d")}, cell: ({ row }) => { const resourceRow = row.original; - return ( - - ); + return ; } }, { From 477712b73c3c2eac4675a1666d4be911193301b1 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Sat, 25 Apr 2026 15:07:59 -0700 Subject: [PATCH 025/131] show site resources --- .cursor/rules/Nomenclature.mdc | 3 +- messages/en-US.json | 15 + server/routers/resource/getUserResources.ts | 50 +- server/routers/site/listSites.ts | 16 +- .../settings/provisioning/pending/page.tsx | 1 + .../settings/sites/[niceId]/layout.tsx | 4 + .../sites/[niceId]/resources/page.tsx | 64 +++ src/app/[orgId]/settings/sites/page.tsx | 1 + src/components/ClientResourcesTable.tsx | 29 +- src/components/MemberResourcesPortal.tsx | 266 ++++++---- src/components/SiteResourcesOverview.tsx | 480 ++++++++++++++++++ src/components/SitesTable.tsx | 74 +++ src/lib/formatSiteResourceAccess.ts | 32 ++ 13 files changed, 885 insertions(+), 150 deletions(-) create mode 100644 src/app/[orgId]/settings/sites/[niceId]/resources/page.tsx create mode 100644 src/components/SiteResourcesOverview.tsx create mode 100644 src/lib/formatSiteResourceAccess.ts diff --git a/.cursor/rules/Nomenclature.mdc b/.cursor/rules/Nomenclature.mdc index 33c4af797..d290f212e 100644 --- a/.cursor/rules/Nomenclature.mdc +++ b/.cursor/rules/Nomenclature.mdc @@ -1,6 +1,7 @@ --- +description: alwaysApply: true --- Proxy resources = public resources -Private resources = client resources +Private resources = client resources = site resources diff --git a/messages/en-US.json b/messages/en-US.json index c8e76add4..5492768f1 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -112,6 +112,21 @@ "siteUpdatedDescription": "The site has been updated.", "siteGeneralDescription": "Configure the general settings for this site", "siteSettingDescription": "Configure the settings on the site", + "siteResourcesTab": "Resources", + "siteResourcesNoneOnSite": "This site has no public or private resources yet.", + "siteResourcesSectionPublic": "Public Resources", + "siteResourcesSectionPrivate": "Private Resources", + "siteResourcesSectionPublicDescription": "Resources exposed externally through domains or ports.", + "siteResourcesSectionPrivateDescription": "Resources available on your private network through the site.", + "siteResourcesViewAllPublic": "View all resources", + "siteResourcesViewAllPrivate": "View all resources", + "siteResourcesDialogDescription": "Overview of public and private resources associated with this site.", + "siteResourcesShowMore": "Show more", + "siteResourcesPermissionDenied": "You do not have permission to list these resources.", + "siteResourcesEmptyPublic": "No public resources target this site yet.", + "siteResourcesEmptyPrivate": "No private resources are associated with this site yet.", + "siteResourcesHowToAccess": "How to access", + "siteResourcesTargetsOnSite": "Targets on this site", "siteSetting": "{siteName} Settings", "siteNewtTunnel": "Newt Site (Recommended)", "siteNewtTunnelDescription": "Easiest way to create an entrypoint into any network. No extra setup.", diff --git a/server/routers/resource/getUserResources.ts b/server/routers/resource/getUserResources.ts index 1722a7993..c0f21a440 100644 --- a/server/routers/resource/getUserResources.ts +++ b/server/routers/resource/getUserResources.ts @@ -86,7 +86,12 @@ export async function getUserResources( .where(inArray(roleSiteResources.roleId, userRoleIds)) : Promise.resolve([]); - const [directResources, roleResourceResults, directSiteResourceResults, roleSiteResourceResults] = await Promise.all([ + const [ + directResources, + roleResourceResults, + directSiteResourceResults, + roleSiteResourceResults + ] = await Promise.all([ directResourcesQuery, roleResourcesQuery, directSiteResourcesQuery, @@ -118,24 +123,24 @@ export async function getUserResources( }> = []; if (accessibleResourceIds.length > 0) { resourcesData = await db - .select({ - resourceId: resources.resourceId, - name: resources.name, - fullDomain: resources.fullDomain, - ssl: resources.ssl, - enabled: resources.enabled, - sso: resources.sso, - protocol: resources.protocol, - emailWhitelistEnabled: resources.emailWhitelistEnabled - }) - .from(resources) - .where( - and( - inArray(resources.resourceId, accessibleResourceIds), - eq(resources.orgId, orgId), - eq(resources.enabled, true) - ) - ); + .select({ + resourceId: resources.resourceId, + name: resources.name, + fullDomain: resources.fullDomain, + ssl: resources.ssl, + enabled: resources.enabled, + sso: resources.sso, + protocol: resources.protocol, + emailWhitelistEnabled: resources.emailWhitelistEnabled + }) + .from(resources) + .where( + and( + inArray(resources.resourceId, accessibleResourceIds), + eq(resources.orgId, orgId), + eq(resources.enabled, true) + ) + ); } // Get site resource details for accessible site resources @@ -166,7 +171,10 @@ export async function getUserResources( .from(siteResources) .where( and( - inArray(siteResources.siteResourceId, accessibleSiteResourceIds), + inArray( + siteResources.siteResourceId, + accessibleSiteResourceIds + ), eq(siteResources.orgId, orgId), eq(siteResources.enabled, true) ) @@ -246,7 +254,7 @@ export async function getUserResources( enabled: siteResource.enabled, alias: siteResource.alias, aliasAddress: siteResource.aliasAddress, - type: 'site' as const + type: "site" as const }; }); diff --git a/server/routers/site/listSites.ts b/server/routers/site/listSites.ts index 88bb233ed..10f5ac0f1 100644 --- a/server/routers/site/listSites.ts +++ b/server/routers/site/listSites.ts @@ -5,6 +5,9 @@ import { orgs, remoteExitNodes, roleSites, + siteNetworks, + siteResources, + targets, sites, userSites } from "@server/db"; @@ -199,6 +202,18 @@ function querySitesBase() { exitNodeName: exitNodes.name, exitNodeEndpoint: exitNodes.endpoint, remoteExitNodeId: remoteExitNodes.remoteExitNodeId, + resourceCount: sql`( + SELECT COUNT(DISTINCT ${targets.resourceId}) + FROM ${targets} + WHERE ${targets.siteId} = ${sites.siteId} + ) + ( + SELECT COUNT(DISTINCT ${siteResources.siteResourceId}) + FROM ${siteResources} + INNER JOIN ${siteNetworks} + ON ${siteResources.networkId} = ${siteNetworks.networkId} + WHERE ${siteNetworks.siteId} = ${sites.siteId} + AND ${siteResources.orgId} = ${sites.orgId} + )`, status: sites.status }) .from(sites) @@ -319,7 +334,6 @@ export async function listSites( if (typeof status !== "undefined") { conditions.push(eq(sites.status, status)); } - const baseQuery = querySitesBase().where(and(...conditions)); // we need to add `as` so that drizzle filters the result as a subquery diff --git a/src/app/[orgId]/settings/provisioning/pending/page.tsx b/src/app/[orgId]/settings/provisioning/pending/page.tsx index ee7246821..a85b0d7d9 100644 --- a/src/app/[orgId]/settings/provisioning/pending/page.tsx +++ b/src/app/[orgId]/settings/provisioning/pending/page.tsx @@ -69,6 +69,7 @@ export default async function PendingSitesPage(props: PendingSitesPageProps) { address: site.address?.split("/")[0], mbIn: formatSize(site.megabytesIn || 0, site.type), mbOut: formatSize(site.megabytesOut || 0, site.type), + resourceCount: Number(site.resourceCount ?? 0), orgId: params.orgId, type: site.type as any, online: site.online, diff --git a/src/app/[orgId]/settings/sites/[niceId]/layout.tsx b/src/app/[orgId]/settings/sites/[niceId]/layout.tsx index d5e11e9bc..ba65d06e0 100644 --- a/src/app/[orgId]/settings/sites/[niceId]/layout.tsx +++ b/src/app/[orgId]/settings/sites/[niceId]/layout.tsx @@ -42,6 +42,10 @@ export default async function SettingsLayout(props: SettingsLayoutProps) { title: t("general"), href: `/${params.orgId}/settings/sites/${params.niceId}/general` }, + { + title: t("siteResourcesTab"), + href: `/${params.orgId}/settings/sites/${params.niceId}/resources` + }, ...(site.type !== "local" ? [ { diff --git a/src/app/[orgId]/settings/sites/[niceId]/resources/page.tsx b/src/app/[orgId]/settings/sites/[niceId]/resources/page.tsx new file mode 100644 index 000000000..fcb460b87 --- /dev/null +++ b/src/app/[orgId]/settings/sites/[niceId]/resources/page.tsx @@ -0,0 +1,64 @@ +import SiteResourcesOverview from "@app/components/SiteResourcesOverview"; +import { internal } from "@app/lib/api"; +import { authCookieHeader } from "@app/lib/api/cookies"; +import type { ListResourcesResponse } from "@server/routers/resource"; +import type { GetSiteResponse } from "@server/routers/site"; +import type { ListAllSiteResourcesByOrgResponse } from "@server/routers/siteResource"; +import type { AxiosResponse } from "axios"; + +type SiteResourcesPageProps = { + params: Promise<{ orgId: string; niceId: string }>; +}; + +export default async function SiteResourcesPage(props: SiteResourcesPageProps) { + const { orgId, niceId } = await props.params; + + const siteRes = await internal.get>( + `/org/${orgId}/site/${niceId}`, + await authCookieHeader() + ); + const site = siteRes.data.data; + + const baseSearch = new URLSearchParams({ + page: "1", + pageSize: "5", + siteId: String(site.siteId) + }); + + let initialPublicData: ListResourcesResponse | null = null; + let initialPrivateData: ListAllSiteResourcesByOrgResponse | null = null; + let initialPublicForbidden = false; + let initialPrivateForbidden = false; + + try { + const res = await internal.get>( + `/org/${orgId}/resources?${baseSearch.toString()}`, + await authCookieHeader() + ); + initialPublicData = res.data.data; + } catch (e: any) { + initialPublicForbidden = e?.response?.status === 403; + } + + try { + const res = await internal.get< + AxiosResponse + >( + `/org/${orgId}/site-resources?${baseSearch.toString()}`, + await authCookieHeader() + ); + initialPrivateData = res.data.data; + } catch (e: any) { + initialPrivateForbidden = e?.response?.status === 403; + } + + return ( + + ); +} diff --git a/src/app/[orgId]/settings/sites/page.tsx b/src/app/[orgId]/settings/sites/page.tsx index d78666d78..631baee41 100644 --- a/src/app/[orgId]/settings/sites/page.tsx +++ b/src/app/[orgId]/settings/sites/page.tsx @@ -64,6 +64,7 @@ export default async function SitesPage(props: SitesPageProps) { address: site.address?.split("/")[0], mbIn: formatSize(site.megabytesIn || 0, site.type), mbOut: formatSize(site.megabytesOut || 0, site.type), + resourceCount: Number(site.resourceCount ?? 0), orgId: params.orgId, type: site.type as any, online: site.online, diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index f10f6414e..d60d58d76 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -49,6 +49,7 @@ import { useDebouncedCallback } from "use-debounce"; import { ColumnFilterButton } from "./ColumnFilterButton"; import { cn } from "@app/lib/cn"; import { dataTableFilterPopoverContentClassName } from "@app/lib/dataTableFilterPopover"; +import { formatSiteResourceDestinationDisplay } from "@app/lib/formatSiteResourceAccess"; import { ResourceSitesStatusCell, type ResourceSiteRow @@ -86,28 +87,13 @@ export type InternalResourceRow = { fullDomain?: string | null; }; -function resolveHttpHttpsDisplayPort( - mode: "http", - httpHttpsPort: number | null -): number { - if (httpHttpsPort != null) { - return httpHttpsPort; - } - return 80; -} - function formatDestinationDisplay(row: InternalResourceRow): string { - const { mode, destination, httpHttpsPort, scheme } = row; - if (mode !== "http") { - return destination; - } - const port = resolveHttpHttpsDisplayPort(mode, httpHttpsPort); - const downstreamScheme = scheme ?? "http"; - const hostPart = - destination.includes(":") && !destination.startsWith("[") - ? `[${destination}]` - : destination; - return `${downstreamScheme}://${hostPart}:${port}`; + return formatSiteResourceDestinationDisplay({ + mode: row.mode, + destination: row.destination, + httpHttpsPort: row.httpHttpsPort, + scheme: row.scheme + }); } function isSafeUrlForLink(href: string): boolean { @@ -609,6 +595,7 @@ export default function ClientResourcesTable({ rows={internalResources} tableId="internal-resources" searchPlaceholder={t("resourcesSearch")} + searchQuery={searchParams.get("query") ?? ""} onAdd={() => setIsCreateDialogOpen(true)} addButtonText={t("resourceAdd")} onSearch={handleSearchChange} diff --git a/src/components/MemberResourcesPortal.tsx b/src/components/MemberResourcesPortal.tsx index 8ce721c88..602735e56 100644 --- a/src/components/MemberResourcesPortal.tsx +++ b/src/components/MemberResourcesPortal.tsx @@ -67,7 +67,7 @@ type SiteResource = { enabled: boolean; alias: string | null; aliasAddress: string | null; - type: 'site'; + type: "site"; }; type MemberResourcesPortalProps = { @@ -130,7 +130,9 @@ const ResourceInfo = ({ resource }: { resource: Resource }) => { resource.whitelist; const hasAnyInfo = - Boolean(resource.siteName) || Boolean(hasAuthMethods) || !resource.enabled; + Boolean(resource.siteName) || + Boolean(hasAuthMethods) || + !resource.enabled; if (!hasAnyInfo) return null; @@ -353,7 +355,9 @@ export default function MemberResourcesPortal({ const [resources, setResources] = useState([]); const [siteResources, setSiteResources] = useState([]); const [filteredResources, setFilteredResources] = useState([]); - const [filteredSiteResources, setFilteredSiteResources] = useState([]); + const [filteredSiteResources, setFilteredSiteResources] = useState< + SiteResource[] + >([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [searchQuery, setSearchQuery] = useState(""); @@ -381,7 +385,9 @@ export default function MemberResourcesPortal({ setResources(response.data.data.resources); setSiteResources(response.data.data.siteResources || []); setFilteredResources(response.data.data.resources); - setFilteredSiteResources(response.data.data.siteResources || []); + setFilteredSiteResources( + response.data.data.siteResources || [] + ); } else { setError("Failed to load resources"); } @@ -459,9 +465,10 @@ export default function MemberResourcesPortal({ case "domain-asc": case "domain-desc": // Sort by destination for site resources - const destCompare = sortBy === "domain-asc" - ? a.destination.localeCompare(b.destination) - : b.destination.localeCompare(a.destination); + const destCompare = + sortBy === "domain-asc" + ? a.destination.localeCompare(b.destination) + : b.destination.localeCompare(a.destination); return destCompare; case "status-enabled": return b.enabled ? 1 : -1; @@ -487,12 +494,14 @@ export default function MemberResourcesPortal({ startIndex + itemsPerPage ); const remainingSlots = itemsPerPage - paginatedResources.length; - const paginatedSiteResources = remainingSlots > 0 - ? filteredSiteResources.slice( - Math.max(0, startIndex - filteredResources.length), - Math.max(0, startIndex - filteredResources.length) + remainingSlots - ) - : []; + const paginatedSiteResources = + remainingSlots > 0 + ? filteredSiteResources.slice( + Math.max(0, startIndex - filteredResources.length), + Math.max(0, startIndex - filteredResources.length) + + remainingSlots + ) + : []; const handleOpenResource = (resource: Resource) => { // Open the resource in a new tab @@ -640,7 +649,8 @@ export default function MemberResourcesPortal({
{/* Resources Content */} - {filteredResources.length === 0 && filteredSiteResources.length === 0 ? ( + {filteredResources.length === 0 && + filteredSiteResources.length === 0 ? ( /* Enhanced Empty State */ @@ -697,87 +707,96 @@ export default function MemberResourcesPortal({ Public Resources

- Web applications and services accessible via browser + Web applications and services accessible via + browser

{paginatedResources.map((resource) => ( - -
-
-
- - - - - {resource.name} - - - -

- {resource.name} -

-
-
-
+ +
+
+
+ + + + + { + resource.name + } + + + +

+ { + resource.name + } +

+
+
+
+
+ +
+ +
+
+ +
+ + +
-
- +
+
-
- -
- - -
-
- -
- -
- - ))} -
+ + ))} +
)} @@ -790,7 +809,8 @@ export default function MemberResourcesPortal({ Private Resources

- Internal network resources accessible via client + Internal network resources accessible via + client

@@ -803,12 +823,16 @@ export default function MemberResourcesPortal({ - {siteResource.name} + { + siteResource.name + }

- {siteResource.name} + { + siteResource.name + }

@@ -818,39 +842,63 @@ export default function MemberResourcesPortal({
-
Resource Details
+
+ Resource Details +
- Mode: + + Mode: + - {siteResource.mode} + { + siteResource.mode + }
{siteResource.protocol && (
- Protocol: + + Protocol: + - {siteResource.protocol} + { + siteResource.protocol + }
)}
- Destination: + + Destination: + - {siteResource.destination} + { + siteResource.destination + }
{siteResource.alias && (
- Alias: + + Alias: + - {siteResource.alias} + { + siteResource.alias + }
)}
- Status: - - {siteResource.enabled ? 'Enabled' : 'Disabled'} + + Status: + + + {siteResource.enabled + ? "Enabled" + : "Disabled"}
@@ -864,7 +912,9 @@ export default function MemberResourcesPortal({ {/* Alias as primary */}
- {siteResource.alias} + { + siteResource.alias + }
+ ); +} + +function PrivateResourceMeta({ row }: { row: SiteResourceRow }) { + const t = useTranslations(); + const modeLabel: Record = { + host: t("editInternalResourceDialogModeHost"), + cidr: t("editInternalResourceDialogModeCidr"), + http: t("editInternalResourceDialogModeHttp") + }; + const dest = formatSiteResourceDestinationDisplay({ + mode: row.mode, + destination: row.destination, + httpHttpsPort: row.destinationPort ?? null, + scheme: row.scheme + }); + return ( +
+
+ {modeLabel[row.mode]} +
+
+ ); +} + +function PublicAccessMethod({ resource: r }: { resource: PublicResourceRow }) { + const t = useTranslations(); + if (!r.http) { + return ( + + ); + } + if (!r.domainId) { + return ( + + ); + } + const fullUrl = `${r.ssl ? "https" : "http"}://${toUnicode(r.fullDomain || "")}`; + return ( + + ); +} + +function PrivateAccessMethod({ row }: { row: SiteResourceRow }) { + if (row.mode === "http" && row.fullDomain) { + const url = `${row.ssl ? "https" : "http"}://${toUnicode(row.fullDomain)}`; + return ( + + ); + } + if (row.mode === "host" && row.alias) { + return ( + + ); + } + const fromAlias = row.alias?.trim(); + if (fromAlias) { + return ( + + ); + } + const dest = formatSiteResourceDestinationDisplay({ + mode: row.mode, + destination: row.destination, + httpHttpsPort: row.destinationPort, + scheme: row.scheme + }); + return ( + + ); +} + +type OverviewRow = { + key: number; + meta: ReactNode; + name: string; + access: ReactNode; + editHref: string; +}; + +type OverviewColumnProps = { + title: string; + description: string; + viewAllHref: string; + viewAllLabel: string; + emptyLabel: string; + isForbidden: boolean; + isFetching: boolean; + rows: OverviewRow[]; + canShowMore: boolean; + onShowMore: () => void; +}; + +function OverviewColumn({ + title, + description, + viewAllHref, + viewAllLabel, + emptyLabel, + isForbidden, + isFetching, + rows, + canShowMore, + onShowMore +}: OverviewColumnProps) { + const t = useTranslations(); + + const header = ( +
+
+
+

+ {title} +

+

+ {description} +

+
+ + {viewAllLabel} + +
+
+ ); + + if (isForbidden) { + return ( +
+ {header} +

+ {t("siteResourcesPermissionDenied")} +

+
+ ); + } + + return ( +
+ {header} + {rows.length === 0 ? ( +
+

+ {emptyLabel} +

+
+ ) : ( + <> +
+
+
    + {rows.map((row) => ( +
  • +
    + {row.meta} +
    +
    +
    + {row.name} +
    +
    + {row.access} +
    +
    +
    + +
    +
  • + ))} +
+
+ {canShowMore ? ( +
+ +
+ ) : null} + + )} +
+ ); +} + +type SiteResourcesOverviewProps = { + siteId: number; + initialPublicData: ListResourcesResponse | null; + initialPrivateData: ListAllSiteResourcesByOrgResponse | null; + initialPublicForbidden: boolean; + initialPrivateForbidden: boolean; + /** When not under `/[orgId]/...` routes, pass org id explicitly (e.g. credenza on sites list). */ + orgIdOverride?: string; +}; + +export default function SiteResourcesOverview({ + siteId, + initialPublicData, + initialPrivateData, + initialPublicForbidden, + initialPrivateForbidden, + orgIdOverride +}: SiteResourcesOverviewProps) { + const t = useTranslations(); + const params = useParams<{ orgId: string }>(); + const orgId = orgIdOverride ?? params.orgId; + const { env } = useEnvContext(); + const api = useMemo(() => createApiClient({ env }), [env]); + + const enabled = Boolean(orgId && siteId); + + const [publicPageSize, setPublicPageSize] = useState(INITIAL_PAGE_SIZE); + const [privatePageSize, setPrivatePageSize] = useState(INITIAL_PAGE_SIZE); + + const publicQuery = useQuery({ + queryKey: [ + "siteResourcesOverview", + "public", + orgId, + siteId, + publicPageSize + ] as const, + enabled: enabled && !initialPublicForbidden, + initialData: initialPublicData ?? undefined, + queryFn: async (): Promise => { + const sp = new URLSearchParams({ + page: "1", + pageSize: String(publicPageSize), + siteId: String(siteId) + }); + const res = await api.get( + `/org/${orgId}/resources?${sp.toString()}` + ); + const envelope = res.data as ResponseT; + const payload = envelope.data; + if (!payload) { + throw new Error("No data"); + } + return payload; + } + }); + + const privateQuery = useQuery({ + queryKey: [ + "siteResourcesOverview", + "private", + orgId, + siteId, + privatePageSize + ] as const, + enabled: enabled && !initialPrivateForbidden, + initialData: initialPrivateData ?? undefined, + queryFn: async (): Promise => { + const sp = new URLSearchParams({ + page: "1", + pageSize: String(privatePageSize), + siteId: String(siteId) + }); + const res = await api.get( + `/org/${orgId}/site-resources?${sp.toString()}` + ); + const envelope = + res.data as ResponseT; + const payload = envelope.data; + if (!payload) { + throw new Error("No data"); + } + return payload; + } + }); + + const publicList = publicQuery.data?.resources ?? []; + const publicTotal = publicQuery.data?.pagination.total ?? 0; + const privateList = privateQuery.data?.siteResources ?? []; + const privateTotal = privateQuery.data?.pagination.total ?? 0; + + const publicForbidden = + initialPublicForbidden || + (publicQuery.isError && isForbidden(publicQuery.error)); + const privateForbidden = + initialPrivateForbidden || + (privateQuery.isError && isForbidden(privateQuery.error)); + + const showEmptyPlaceholder = + !publicForbidden && + !privateForbidden && + publicList.length === 0 && + privateList.length === 0; + + const publicViewAllHref = `/${orgId}/settings/resources/proxy?siteId=${siteId}`; + const privateViewAllHref = `/${orgId}/settings/resources/client?siteId=${siteId}`; + + const publicRows = publicList.map((r) => ({ + key: r.resourceId, + meta: , + name: r.name, + access: , + editHref: `/${orgId}/settings/resources/proxy/${r.niceId}` + })); + + const privateRows = privateList.map((row) => { + const qs = new URLSearchParams({ + siteId: String(siteId), + query: row.niceId + }); + return { + key: row.siteResourceId, + meta: , + name: row.name, + access: , + editHref: `/${orgId}/settings/resources/client?${qs.toString()}` + }; + }); + + if (showEmptyPlaceholder) { + return ( + +

+ {t("siteResourcesNoneOnSite")} +

+
+ ); + } + + /** Left column = whichever side has a greater total; ties default to public first. */ + const publicOnLeft = publicTotal >= privateTotal; + + const publicColumn = ( + setPublicPageSize((n) => n + LOAD_MORE_INCREMENT)} + /> + ); + + const privateColumn = ( + + setPrivatePageSize((n) => n + LOAD_MORE_INCREMENT) + } + /> + ); + + return ( + +
+ {publicOnLeft + ? [publicColumn, privateColumn] + : [privateColumn, publicColumn]} +
+
+ ); +} diff --git a/src/components/SitesTable.tsx b/src/components/SitesTable.tsx index 45c0d9a0b..b221f3f19 100644 --- a/src/components/SitesTable.tsx +++ b/src/components/SitesTable.tsx @@ -24,6 +24,7 @@ import { ArrowRight, ArrowUp10Icon, ArrowUpRight, + ChevronDown, ChevronsUpDownIcon, MoreHorizontal } from "lucide-react"; @@ -34,6 +35,16 @@ import { useState, useTransition, useEffect } from "react"; import { useDebouncedCallback } from "use-debounce"; import z from "zod"; import { ColumnFilterButton } from "./ColumnFilterButton"; +import SiteResourcesOverview from "@app/components/SiteResourcesOverview"; +import { + Credenza, + CredenzaBody, + CredenzaContent, + CredenzaDescription, + CredenzaFooter, + CredenzaHeader, + CredenzaTitle +} from "@app/components/Credenza"; import { ControlledDataTable, type ExtendedColumnDef @@ -54,6 +65,7 @@ export type SiteRow = { exitNodeName?: string; exitNodeEndpoint?: string; remoteExitNodeId?: string; + resourceCount: number; }; type SitesTableProps = { @@ -79,6 +91,8 @@ export default function SitesTable({ const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); const [selectedSite, setSelectedSite] = useState(null); + const [resourcesDialogSite, setResourcesDialogSite] = + useState(null); const [isRefreshing, startTransition] = useTransition(); const [isNavigatingToAddPage, startNavigation] = useTransition(); @@ -293,6 +307,29 @@ export default function SitesTable({ ); } }, + { + id: "resources", + accessorKey: "resourceCount", + friendlyName: t("resources"), + header: () => {t("resources")}, + cell: ({ row }) => { + const siteRow = row.original; + return ( + + ); + } + }, { accessorKey: "type", friendlyName: t("type"), @@ -503,6 +540,43 @@ export default function SitesTable({ return ( <> + { + if (!open) setResourcesDialogSite(null); + }} + > + + + {t("siteResourcesTab")} + + {t("siteResourcesDialogDescription")} + + + + {resourcesDialogSite != null && ( + + )} + + + + + + + {selectedSite && ( Date: Sat, 25 Apr 2026 15:17:39 -0700 Subject: [PATCH 026/131] change column order on sites table --- src/components/SiteResourcesOverview.tsx | 8 ++--- src/components/SitesTable.tsx | 46 ++++++++++++------------ 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/src/components/SiteResourcesOverview.tsx b/src/components/SiteResourcesOverview.tsx index b774b22b8..9ff6b9686 100644 --- a/src/components/SiteResourcesOverview.tsx +++ b/src/components/SiteResourcesOverview.tsx @@ -431,9 +431,6 @@ export default function SiteResourcesOverview({ ); } - /** Left column = whichever side has a greater total; ties default to public first. */ - const publicOnLeft = publicTotal >= privateTotal; - const publicColumn = (
- {publicOnLeft - ? [publicColumn, privateColumn] - : [privateColumn, publicColumn]} + {publicColumn} + {privateColumn}
); diff --git a/src/components/SitesTable.tsx b/src/components/SitesTable.tsx index b221f3f19..8eba5cee5 100644 --- a/src/components/SitesTable.tsx +++ b/src/components/SitesTable.tsx @@ -307,29 +307,6 @@ export default function SitesTable({ ); } }, - { - id: "resources", - accessorKey: "resourceCount", - friendlyName: t("resources"), - header: () => {t("resources")}, - cell: ({ row }) => { - const siteRow = row.original; - return ( - - ); - } - }, { accessorKey: "type", friendlyName: t("type"), @@ -376,6 +353,29 @@ export default function SitesTable({ } } }, + { + id: "resources", + accessorKey: "resourceCount", + friendlyName: t("resources"), + header: () => {t("resources")}, + cell: ({ row }) => { + const siteRow = row.original; + return ( + + ); + } + }, { accessorKey: "exitNode", friendlyName: t("exitNode"), From 8e16ff07a9b6c25785c966f59acfad7c26213391 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Sat, 25 Apr 2026 15:23:22 -0700 Subject: [PATCH 027/131] move switch toggle above tabs on health check dialog --- messages/en-US.json | 1 + src/components/HealthCheckCredenza.tsx | 239 +++++++++++++------------ 2 files changed, 121 insertions(+), 119 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 5492768f1..13b47d135 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -1903,6 +1903,7 @@ "configureHealthCheck": "Configure Health Check", "configureHealthCheckDescription": "Set up health monitoring for {target}", "enableHealthChecks": "Enable Health Checks", + "healthCheckDisabledStateDescription": "When disabled, the site will not perform health checks and the state will be considered unknown.", "enableHealthChecksDescription": "Monitor the health of this target. You can monitor a different endpoint than the target if required.", "healthScheme": "Method", "healthSelectScheme": "Select Method", diff --git a/src/components/HealthCheckCredenza.tsx b/src/components/HealthCheckCredenza.tsx index 671a16e7d..c5ab59064 100644 --- a/src/components/HealthCheckCredenza.tsx +++ b/src/components/HealthCheckCredenza.tsx @@ -46,6 +46,7 @@ import { SitesSelector } from "@app/components/site-selector"; import type { Selectedsite } from "@app/components/site-selector"; import { CaretSortIcon } from "@radix-ui/react-icons"; import { cn } from "@app/lib/cn"; +import { SwitchInput } from "@app/components/SwitchInput"; export type HealthCheckConfig = { hcEnabled: boolean; @@ -407,7 +408,7 @@ export function HealthCheckCredenza(props: HealthCheckCredenzaProps) { }) : t("standaloneHcDescription"); - const showFields = mode === "submit" || watchedEnabled; + const disableTabInputs = mode === "autoSave" && !watchedEnabled; const isSnmpOrIcmp = watchedMode === "snmp" || watchedMode === "icmp"; const isTcp = watchedMode === "tcp"; @@ -491,6 +492,40 @@ export function HealthCheckCredenza(props: HealthCheckCredenzaProps) {
)} + {mode === "autoSave" && ( +
+ ( + + + + handleChange( + "hcEnabled", + value, + field.onChange + ) + } + /> + + + )} + /> +
+ )} +
{/* ── Strategy tab ──────────────────────── */} -
- {/* Enable toggle (autoSave mode only) */} - {mode === "autoSave" && ( - ( - -
- - {t( - "enableHealthChecks" - )} - -
- - - handleChange( - "hcEnabled", - value, - field.onChange - ) - } - /> - -
- )} - /> - )} - +
+
{/* Strategy picker */} - {showFields && ( - ( - - - - handleChange( - "hcMode", - value, - field.onChange + ( + + + - - - - )} - /> - )} + ]} + value={field.value} + onChange={(value) => + handleChange( + "hcMode", + value, + field.onChange + ) + } + /> + + + + )} + /> +
{/* ── Connection tab ────────────────────── */} -
- {!showFields && ( -

- {t("enableHealthChecks")} -

- )} - +
+
{/* Contact-sales banner for SNMP / ICMP */} - {showFields && isSnmpOrIcmp && ( - - )} + {isSnmpOrIcmp && } - {showFields && !isSnmpOrIcmp && ( + {!isSnmpOrIcmp && ( <> {/* Scheme / Hostname / Port */} {isTcp ? ( @@ -1021,22 +1020,23 @@ export function HealthCheckCredenza(props: HealthCheckCredenzaProps) { )} )} +
{/* ── Advanced tab ──────────────────────── */} -
- {!showFields && ( -

- {t("enableHealthChecks")} -

- )} - +
+
{/* Contact-sales banner for SNMP / ICMP */} - {showFields && isSnmpOrIcmp && ( - - )} + {isSnmpOrIcmp && } - {showFields && !isSnmpOrIcmp && ( + {!isSnmpOrIcmp && ( <> {/* Healthy interval + threshold */}
@@ -1350,6 +1350,7 @@ export function HealthCheckCredenza(props: HealthCheckCredenzaProps) { )} )} +
From 82212af643a2710a894613e55aa760db767de341 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 24 Apr 2026 17:47:08 -0700 Subject: [PATCH 028/131] Add resource degraded --- messages/en-US.json | 1 + server/db/pg/schema/privateSchema.ts | 1 + server/db/sqlite/schema/privateSchema.ts | 43 ++++++++++++++----- server/emails/templates/AlertNotification.tsx | 15 ++++++- .../lib/alerts/events/healthCheckEvents.ts | 9 ++++ .../lib/alerts/events/resourceEvents.ts | 29 ++++++++++--- server/private/lib/alerts/sendAlertEmail.ts | 2 + server/private/lib/alerts/sendAlertWebhook.ts | 31 ++++++++++--- .../alertEvents/triggerResourceAlert.ts | 14 ++++-- .../routers/alertRule/createAlertRule.ts | 41 ++++++++++++------ .../routers/alertRule/listAlertRules.ts | 1 + server/routers/alertRule/types.ts | 2 + src/components/AlertingRulesTable.tsx | 2 + src/components/ProxyResourcesTable.tsx | 1 - .../alert-rule-editor/AlertRuleFields.tsx | 4 ++ src/lib/alertRuleForm.ts | 8 +++- 16 files changed, 162 insertions(+), 42 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 13b47d135..c566d500e 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -1432,6 +1432,7 @@ "alertingTriggerHcToggle": "Health check status changes", "alertingTriggerResourceHealthy": "Resource healthy", "alertingTriggerResourceUnhealthy": "Resource unhealthy", + "alertingTriggerResourceDegraded": "Resource degraded", "alertingSearchHealthChecks": "Search health checks…", "alertingHealthChecksEmpty": "No health checks available.", "alertingTriggerResourceToggle": "Resource status changes", diff --git a/server/db/pg/schema/privateSchema.ts b/server/db/pg/schema/privateSchema.ts index d930b69d0..1aa2a1ef7 100644 --- a/server/db/pg/schema/privateSchema.ts +++ b/server/db/pg/schema/privateSchema.ts @@ -484,6 +484,7 @@ export const alertRules = pgTable("alertRules", { | "health_check_toggle" | "resource_healthy" | "resource_unhealthy" + | "resource_degraded" | "resource_toggle" >() .notNull(), diff --git a/server/db/sqlite/schema/privateSchema.ts b/server/db/sqlite/schema/privateSchema.ts index 9a33e2049..25a7b5bf5 100644 --- a/server/db/sqlite/schema/privateSchema.ts +++ b/server/db/sqlite/schema/privateSchema.ts @@ -425,10 +425,18 @@ export const eventStreamingDestinations = sqliteTable( orgId: text("orgId") .notNull() .references(() => orgs.orgId, { onDelete: "cascade" }), - sendConnectionLogs: integer("sendConnectionLogs", { mode: "boolean" }).notNull().default(false), - sendRequestLogs: integer("sendRequestLogs", { mode: "boolean" }).notNull().default(false), - sendActionLogs: integer("sendActionLogs", { mode: "boolean" }).notNull().default(false), - sendAccessLogs: integer("sendAccessLogs", { mode: "boolean" }).notNull().default(false), + sendConnectionLogs: integer("sendConnectionLogs", { mode: "boolean" }) + .notNull() + .default(false), + sendRequestLogs: integer("sendRequestLogs", { mode: "boolean" }) + .notNull() + .default(false), + sendActionLogs: integer("sendActionLogs", { mode: "boolean" }) + .notNull() + .default(false), + sendAccessLogs: integer("sendAccessLogs", { mode: "boolean" }) + .notNull() + .default(false), type: text("type").notNull(), // e.g. "http", "kafka", etc. config: text("config").notNull(), // JSON string with the configuration for the destination enabled: integer("enabled", { mode: "boolean" }) @@ -476,14 +484,19 @@ export const alertRules = sqliteTable("alertRules", { | "health_check_toggle" | "resource_healthy" | "resource_unhealthy" + | "resource_degraded" | "resource_toggle" >() .notNull(), enabled: integer("enabled", { mode: "boolean" }).notNull().default(true), cooldownSeconds: integer("cooldownSeconds").notNull().default(300), allSites: integer("allSites", { mode: "boolean" }).notNull().default(false), - allHealthChecks: integer("allHealthChecks", { mode: "boolean" }).notNull().default(false), - allResources: integer("allResources", { mode: "boolean" }).notNull().default(false), + allHealthChecks: integer("allHealthChecks", { mode: "boolean" }) + .notNull() + .default(false), + allResources: integer("allResources", { mode: "boolean" }) + .notNull() + .default(false), lastTriggeredAt: integer("lastTriggeredAt"), createdAt: integer("createdAt").notNull(), updatedAt: integer("updatedAt").notNull() @@ -531,19 +544,27 @@ export const alertEmailRecipients = sqliteTable("alertEmailRecipients", { recipientId: integer("recipientId").primaryKey({ autoIncrement: true }), emailActionId: integer("emailActionId") .notNull() - .references(() => alertEmailActions.emailActionId, { onDelete: "cascade" }), - userId: text("userId").references(() => users.userId, { onDelete: "cascade" }), - roleId: integer("roleId").references(() => roles.roleId, { onDelete: "cascade" }), + .references(() => alertEmailActions.emailActionId, { + onDelete: "cascade" + }), + userId: text("userId").references(() => users.userId, { + onDelete: "cascade" + }), + roleId: integer("roleId").references(() => roles.roleId, { + onDelete: "cascade" + }), email: text("email") }); export const alertWebhookActions = sqliteTable("alertWebhookActions", { - webhookActionId: integer("webhookActionId").primaryKey({ autoIncrement: true }), + webhookActionId: integer("webhookActionId").primaryKey({ + autoIncrement: true + }), alertRuleId: integer("alertRuleId") .notNull() .references(() => alertRules.alertRuleId, { onDelete: "cascade" }), webhookUrl: text("webhookUrl").notNull(), - config: text("config"), // encrypted JSON with auth config (authType, credentials) + config: text("config"), // encrypted JSON with auth config (authType, credentials) enabled: integer("enabled", { mode: "boolean" }).notNull().default(true), lastSentAt: integer("lastSentAt") }); diff --git a/server/emails/templates/AlertNotification.tsx b/server/emails/templates/AlertNotification.tsx index 5542384a9..899c4a82f 100644 --- a/server/emails/templates/AlertNotification.tsx +++ b/server/emails/templates/AlertNotification.tsx @@ -23,6 +23,7 @@ export type AlertEventType = | "health_check_toggle" | "resource_healthy" | "resource_unhealthy" + | "resource_degraded" | "resource_toggle"; export type AlertNotificationProps = { @@ -114,6 +115,15 @@ function getEventMeta(eventType: AlertEventType): { statusLabel: "Unhealthy", statusColor: "#dc2626" }; + case "resource_degraded": + return { + heading: "Resource Unhealthy", + previewText: "A resource in your organization is not healthy.", + summary: + "A resource in your organization is currently unhealthy.", + statusLabel: "Unhealthy", + statusColor: "#dc2626" + }; case "resource_toggle": return { heading: "Resource Status Changed", @@ -135,7 +145,10 @@ function getEventMeta(eventType: AlertEventType): { } } -function resolveToggleStatus(status: unknown): { label: string; color: string } { +function resolveToggleStatus(status: unknown): { + label: string; + color: string; +} { switch (String(status).toLowerCase()) { case "online": return { label: "Online", color: "#16a34a" }; diff --git a/server/private/lib/alerts/events/healthCheckEvents.ts b/server/private/lib/alerts/events/healthCheckEvents.ts index 9b5c3104b..9f675f4c0 100644 --- a/server/private/lib/alerts/events/healthCheckEvents.ts +++ b/server/private/lib/alerts/events/healthCheckEvents.ts @@ -23,6 +23,7 @@ import { } from "@server/db"; import { eq } from "drizzle-orm"; import { + fireResourceDegradedAlert, fireResourceHealthyAlert, fireResourceUnhealthyAlert } from "./resourceEvents"; @@ -217,6 +218,14 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null undefined, trx ); + } else if (health === "degraded") { + await fireResourceDegradedAlert( + orgId, + resource.resourceId, + resource.name, + undefined, + trx + ); } } } diff --git a/server/private/lib/alerts/events/resourceEvents.ts b/server/private/lib/alerts/events/resourceEvents.ts index 8c20bc5a1..41c77dc11 100644 --- a/server/private/lib/alerts/events/resourceEvents.ts +++ b/server/private/lib/alerts/events/resourceEvents.ts @@ -130,9 +130,9 @@ export async function fireResourceUnhealthyAlert( } /** - * Fire a `resource_toggle` alert for the given resource. + * Fire a `resource_degraded` alert for the given resource. * - * Call this when a resource's enabled/disabled status is toggled so that any + * Call this after a resource has been detected as degraded so that any * matching `alertRules` can dispatch their email and webhook actions. * * @param orgId - Organisation that owns the resource. @@ -140,7 +140,7 @@ export async function fireResourceUnhealthyAlert( * @param resourceName - Human-readable name shown in notifications (optional). * @param extra - Any additional key/value pairs to include in the payload. */ -export async function fireResourceToggleAlert( +export async function fireResourceDegradedAlert( orgId: string, resourceId: number, resourceName?: string | null, @@ -148,8 +148,16 @@ export async function fireResourceToggleAlert( trx: Transaction | typeof db = db ): Promise { try { + await trx.insert(statusHistory).values({ + entityType: "resource", + entityId: resourceId, + orgId: orgId, + status: "degraded", + timestamp: Math.floor(Date.now() / 1000) + }); + await processAlerts({ - eventType: "resource_toggle", + eventType: "resource_degraded", orgId, resourceId, data: { @@ -157,9 +165,20 @@ export async function fireResourceToggleAlert( ...extra } }); + await processAlerts({ + eventType: "resource_toggle", + orgId, + resourceId, + data: { + resourceId, + status: "degraded", + ...(resourceName != null ? { resourceName } : {}), + ...extra + } + }); } catch (err) { logger.error( - `fireResourceToggleAlert: unexpected error for resourceId ${resourceId}`, + `fireResourceDegradedAlert: unexpected error for resourceId ${resourceId}`, err ); } diff --git a/server/private/lib/alerts/sendAlertEmail.ts b/server/private/lib/alerts/sendAlertEmail.ts index 598262e38..6f99b102c 100644 --- a/server/private/lib/alerts/sendAlertEmail.ts +++ b/server/private/lib/alerts/sendAlertEmail.ts @@ -88,6 +88,8 @@ function buildSubject(context: AlertContext): string { return "[Alert] Resource Healthy"; case "resource_unhealthy": return "[Alert] Resource Unhealthy"; + case "resource_degraded": + return "[Alert] Resource Degraded"; case "resource_toggle": return "[Alert] Resource Status Changed"; default: { diff --git a/server/private/lib/alerts/sendAlertWebhook.ts b/server/private/lib/alerts/sendAlertWebhook.ts index 2dd0eb600..3975eb09f 100644 --- a/server/private/lib/alerts/sendAlertWebhook.ts +++ b/server/private/lib/alerts/sendAlertWebhook.ts @@ -12,7 +12,10 @@ */ import logger from "@server/logger"; -import { AlertContext, WebhookAlertConfig } from "@server/routers/alertRule/types"; +import { + AlertContext, + WebhookAlertConfig +} from "@server/routers/alertRule/types"; const REQUEST_TIMEOUT_MS = 15_000; const MAX_RETRIES = 3; @@ -56,7 +59,10 @@ export async function sendAlertWebhook( for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) { const controller = new AbortController(); - const timeoutHandle = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS); + const timeoutHandle = setTimeout( + () => controller.abort(), + REQUEST_TIMEOUT_MS + ); let response: Response; try { @@ -75,7 +81,9 @@ export async function sendAlertWebhook( ); } else { const msg = err instanceof Error ? err.message : String(err); - lastError = new Error(`Alert webhook: request to "${url}" failed – ${msg}`); + lastError = new Error( + `Alert webhook: request to "${url}" failed – ${msg}` + ); } if (attempt < MAX_RETRIES) { const delay = RETRY_BASE_DELAY_MS * 2 ** (attempt - 1); @@ -111,11 +119,18 @@ export async function sendAlertWebhook( continue; } - logger.debug(`Alert webhook sent successfully to "${url}" for event "${context.eventType}" (attempt ${attempt}/${MAX_RETRIES})`); + logger.debug( + `Alert webhook sent successfully to "${url}" for event "${context.eventType}" (attempt ${attempt}/${MAX_RETRIES})` + ); return; } - throw lastError ?? new Error(`Alert webhook: all ${MAX_RETRIES} attempts failed for "${url}"`); + throw ( + lastError ?? + new Error( + `Alert webhook: all ${MAX_RETRIES} attempts failed for "${url}"` + ) + ); } // --------------------------------------------------------------------------- @@ -139,6 +154,8 @@ function deriveStatus( case "health_check_unhealthy": case "resource_unhealthy": return "unhealthy"; + case "resource_degraded": + return "degraded"; case "health_check_toggle": case "resource_toggle": return String(data.status ?? "unknown"); @@ -154,7 +171,9 @@ function deriveStatus( // Header construction (mirrors HttpLogDestination.buildHeaders) // --------------------------------------------------------------------------- -function buildHeaders(webhookConfig: WebhookAlertConfig): Record { +function buildHeaders( + webhookConfig: WebhookAlertConfig +): Record { const headers: Record = { "Content-Type": "application/json" }; diff --git a/server/private/routers/alertEvents/triggerResourceAlert.ts b/server/private/routers/alertEvents/triggerResourceAlert.ts index 42e63b288..a43b8e201 100644 --- a/server/private/routers/alertEvents/triggerResourceAlert.ts +++ b/server/private/routers/alertEvents/triggerResourceAlert.ts @@ -24,7 +24,8 @@ import { eq, and } from "drizzle-orm"; import { fireResourceHealthyAlert, fireResourceUnhealthyAlert, - fireResourceToggleAlert + fireResourceToggleAlert, + fireResourceDegradedAlert } from "#private/lib/alerts/events/resourceEvents"; const paramsSchema = z.strictObject({ @@ -33,7 +34,12 @@ const paramsSchema = z.strictObject({ }); const bodySchema = z.strictObject({ - eventType: z.enum(["resource_healthy", "resource_unhealthy", "resource_toggle"]) + eventType: z.enum([ + "resource_healthy", + "resource_unhealthy", + "resource_degraded", + "resource_toggle" + ]) }); export type TriggerResourceAlertResponse = { @@ -101,8 +107,8 @@ export async function triggerResourceAlert( resourceId, resource.name ?? undefined ); - } else { - await fireResourceToggleAlert( + } else if (eventType === "resource_degraded") { + await fireResourceDegradedAlert( orgId, resourceId, resource.name ?? undefined diff --git a/server/private/routers/alertRule/createAlertRule.ts b/server/private/routers/alertRule/createAlertRule.ts index ceaacf73c..f9b84ebab 100644 --- a/server/private/routers/alertRule/createAlertRule.ts +++ b/server/private/routers/alertRule/createAlertRule.ts @@ -33,7 +33,11 @@ import { encrypt } from "@server/lib/crypto"; import config from "@server/lib/config"; import { CreateAlertRuleResponse } from "@server/routers/alertRule/types"; -export const SITE_EVENT_TYPES = ["site_online", "site_offline", "site_toggle"] as const; +export const SITE_EVENT_TYPES = [ + "site_online", + "site_offline", + "site_toggle" +] as const; export const HC_EVENT_TYPES = [ "health_check_healthy", "health_check_unhealthy", @@ -42,6 +46,7 @@ export const HC_EVENT_TYPES = [ export const RESOURCE_EVENT_TYPES = [ "resource_healthy", "resource_unhealthy", + "resource_degraded", "resource_toggle" ] as const; @@ -92,19 +97,24 @@ const bodySchema = z const isHcEvent = (HC_EVENT_TYPES as readonly string[]).includes( val.eventType ); - const isResourceEvent = (RESOURCE_EVENT_TYPES as readonly string[]).includes( - val.eventType - ); + const isResourceEvent = ( + RESOURCE_EVENT_TYPES as readonly string[] + ).includes(val.eventType); if (isSiteEvent && !val.allSites && val.siteIds.length === 0) { ctx.addIssue({ code: z.ZodIssueCode.custom, - message: "At least one siteId is required for site event types when allSites is false", + message: + "At least one siteId is required for site event types when allSites is false", path: ["siteIds"] }); } - if (isHcEvent && !val.allHealthChecks && val.healthCheckIds.length === 0) { + if ( + isHcEvent && + !val.allHealthChecks && + val.healthCheckIds.length === 0 + ) { ctx.addIssue({ code: z.ZodIssueCode.custom, message: @@ -129,10 +139,15 @@ const bodySchema = z }); } - if (isResourceEvent && !val.allResources && val.resourceIds.length === 0) { + if ( + isResourceEvent && + !val.allResources && + val.resourceIds.length === 0 + ) { ctx.addIssue({ code: z.ZodIssueCode.custom, - message: "At least one resourceId is required for resource event types when allResources is false", + message: + "At least one resourceId is required for resource event types when allResources is false", path: ["resourceIds"] }); } @@ -148,7 +163,8 @@ const bodySchema = z if (isResourceEvent && val.healthCheckIds.length > 0) { ctx.addIssue({ code: z.ZodIssueCode.custom, - message: "healthCheckIds must not be set for resource event types", + message: + "healthCheckIds must not be set for resource event types", path: ["healthCheckIds"] }); } @@ -164,7 +180,8 @@ const bodySchema = z if (isHcEvent && val.resourceIds.length > 0) { ctx.addIssue({ code: z.ZodIssueCode.custom, - message: "resourceIds must not be set for health check event types", + message: + "resourceIds must not be set for health check event types", path: ["resourceIds"] }); } @@ -284,9 +301,7 @@ export async function createAlertRule( // Create the email action pivot row and recipients if any recipients // were supplied (userIds, roleIds, or raw emails). const hasRecipients = - userIds.length > 0 || - roleIds.length > 0 || - emails.length > 0; + userIds.length > 0 || roleIds.length > 0 || emails.length > 0; if (hasRecipients) { const [emailActionRow] = await db diff --git a/server/private/routers/alertRule/listAlertRules.ts b/server/private/routers/alertRule/listAlertRules.ts index a31a4d119..9684b88a4 100644 --- a/server/private/routers/alertRule/listAlertRules.ts +++ b/server/private/routers/alertRule/listAlertRules.ts @@ -76,6 +76,7 @@ const SITE_ALERT_EVENT_TYPES = [ const RESOURCE_ALERT_EVENT_TYPES = [ "resource_healthy", "resource_unhealthy", + "resource_degraded", "resource_toggle" ] as const; diff --git a/server/routers/alertRule/types.ts b/server/routers/alertRule/types.ts index a9e66350e..e3f92591d 100644 --- a/server/routers/alertRule/types.ts +++ b/server/routers/alertRule/types.ts @@ -37,6 +37,7 @@ export type GetAlertRuleResponse = { | "health_check_toggle" | "resource_healthy" | "resource_unhealthy" + | "resource_degraded" | "resource_toggle"; enabled: boolean; cooldownSeconds: number; @@ -94,6 +95,7 @@ export type AlertEventType = | "health_check_toggle" | "resource_healthy" | "resource_unhealthy" + | "resource_degraded" | "resource_toggle"; // --------------------------------------------------------------------------- diff --git a/src/components/AlertingRulesTable.tsx b/src/components/AlertingRulesTable.tsx index 52ff3b609..f8fcf468d 100644 --- a/src/components/AlertingRulesTable.tsx +++ b/src/components/AlertingRulesTable.tsx @@ -118,6 +118,8 @@ function triggerLabel(rule: AlertRuleRow, t: (k: string) => string) { return t("alertingTriggerResourceHealthy"); case "resource_unhealthy": return t("alertingTriggerResourceUnhealthy"); + case "resource_degraded": + return t("alertingTriggerResourceDegraded"); case "resource_toggle": return t("alertingTriggerResourceToggle"); default: diff --git a/src/components/ProxyResourcesTable.tsx b/src/components/ProxyResourcesTable.tsx index 324f29552..2b56eb98d 100644 --- a/src/components/ProxyResourcesTable.tsx +++ b/src/components/ProxyResourcesTable.tsx @@ -32,7 +32,6 @@ import { toast } from "@app/hooks/useToast"; import { createApiClient, formatAxiosError } from "@app/lib/api"; import { UpdateResourceResponse } from "@server/routers/resource"; import type { PaginationState } from "@tanstack/react-table"; -import { useQuery } from "@tanstack/react-query"; import { AxiosResponse } from "axios"; import { ArrowDown01Icon, diff --git a/src/components/alert-rule-editor/AlertRuleFields.tsx b/src/components/alert-rule-editor/AlertRuleFields.tsx index 1d420f433..887fbaa5a 100644 --- a/src/components/alert-rule-editor/AlertRuleFields.tsx +++ b/src/components/alert-rule-editor/AlertRuleFields.tsx @@ -1147,6 +1147,7 @@ export function AlertRuleSourceFields({ if ( curTrigger !== "resource_healthy" && curTrigger !== "resource_unhealthy" && + curTrigger !== "resource_degraded" && curTrigger !== "resource_toggle" ) { setValue("trigger", "resource_toggle", { @@ -1367,6 +1368,9 @@ export function AlertRuleTriggerFields({ {t("alertingTriggerResourceUnhealthy")} + + {t("alertingTriggerResourceDegraded")} + ) : ( <> diff --git a/src/lib/alertRuleForm.ts b/src/lib/alertRuleForm.ts index 111487c48..039c367b6 100644 --- a/src/lib/alertRuleForm.ts +++ b/src/lib/alertRuleForm.ts @@ -25,6 +25,7 @@ export type AlertTrigger = | "health_check_toggle" | "resource_healthy" | "resource_unhealthy" + | "resource_degraded" | "resource_toggle"; export type AlertRuleFormAction = @@ -77,6 +78,7 @@ export type AlertRuleApiPayload = { | "health_check_toggle" | "resource_healthy" | "resource_unhealthy" + | "resource_degraded" | "resource_toggle"; enabled: boolean; allSites: boolean; @@ -160,6 +162,7 @@ export function buildFormSchema(t: (k: string) => string) { "health_check_toggle", "resource_healthy", "resource_unhealthy", + "resource_degraded", "resource_toggle" ]), actions: z.array( @@ -243,6 +246,7 @@ export function buildFormSchema(t: (k: string) => string) { const resourceTriggers: AlertTrigger[] = [ "resource_healthy", "resource_unhealthy", + "resource_degraded", "resource_toggle" ]; if ( @@ -344,7 +348,9 @@ export function alertRuleAllResourcesSelected( eventType: string, resourceIds: number[] | undefined ): boolean { - return eventType.startsWith("resource_") && (resourceIds?.length ?? 0) === 0; + return ( + eventType.startsWith("resource_") && (resourceIds?.length ?? 0) === 0 + ); } export function alertRuleAllHealthChecksSelected( From 7c7d1f641e174b94fd228d6d2f4173d824e79635 Mon Sep 17 00:00:00 2001 From: Owen Date: Sat, 25 Apr 2026 15:29:59 -0700 Subject: [PATCH 029/131] Support unknown and degraded status --- server/lib/alerts/events/healthCheckEvents.ts | 11 + server/lib/blueprints/proxyResources.ts | 27 ++ server/lib/statusHistory.ts | 51 +++- .../lib/alerts/events/healthCheckEvents.ts | 47 +++- .../lib/alerts/events/resourceEvents.ts | 46 +++ server/private/lib/alerts/types.ts | 63 +++++ server/routers/target/updateTarget.ts | 15 + src/app/admin/users/AdminUsersTable.tsx | 264 ++++++++++++++++++ src/components/AdminUsersDataTable.tsx | 37 +++ src/components/RolesDataTable.tsx | 41 +++ src/components/UptimeBar.tsx | 7 +- src/components/UptimeMiniBar.tsx | 5 +- src/components/UsersDataTable.tsx | 41 +++ src/lib/alertRulesLocalStorage.ts | 129 +++++++++ 14 files changed, 766 insertions(+), 18 deletions(-) create mode 100644 server/private/lib/alerts/types.ts create mode 100644 src/app/admin/users/AdminUsersTable.tsx create mode 100644 src/components/AdminUsersDataTable.tsx create mode 100644 src/components/RolesDataTable.tsx create mode 100644 src/components/UsersDataTable.tsx create mode 100644 src/lib/alertRulesLocalStorage.ts diff --git a/server/lib/alerts/events/healthCheckEvents.ts b/server/lib/alerts/events/healthCheckEvents.ts index ba79feb4b..0a6d40f16 100644 --- a/server/lib/alerts/events/healthCheckEvents.ts +++ b/server/lib/alerts/events/healthCheckEvents.ts @@ -20,4 +20,15 @@ export async function fireHealthCheckUnhealthyAlert( trx?: unknown ): Promise { return; +} + +export async function fireHealthCheckUnknownAlert( + orgId: string, + healthCheckId: number, + healthCheckName?: string | null, + healthCheckTargetId?: number | null, + extra?: Record, + trx?: unknown +): Promise { + return; } \ No newline at end of file diff --git a/server/lib/blueprints/proxyResources.ts b/server/lib/blueprints/proxyResources.ts index 136fa1545..fc1fee5b0 100644 --- a/server/lib/blueprints/proxyResources.ts +++ b/server/lib/blueprints/proxyResources.ts @@ -34,6 +34,7 @@ import { hashPassword } from "@server/auth/password"; import { isValidCIDR, isValidIP, isValidUrlGlobPattern } from "../validators"; import { isValidRegionId } from "@server/db/regions"; import { isLicensedOrSubscribed } from "#dynamic/lib/isLicencedOrSubscribed"; +import { fireHealthCheckUnknownAlert } from "#dynamic/lib/alerts"; import { tierMatrix } from "../billing/tierMatrix"; export type ProxyResourcesResults = { @@ -169,6 +170,18 @@ export async function updateProxyResources( .returning(); healthchecksToUpdate.push(newHealthcheck); + + // Insert unknown status history when HC is created in disabled state + if (!healthcheckData?.enabled) { + await fireHealthCheckUnknownAlert( + orgId, + newHealthcheck.targetHealthCheckId, + newHealthcheck.name, + newHealthcheck.targetId, + undefined, + trx + ); + } } // Find existing resource by niceId and orgId @@ -557,6 +570,20 @@ export async function updateProxyResources( targetsToUpdate.push(updatedTarget); } } + + // Insert unknown status history when HC is disabled + const isDisablingHc = + !healthcheckData?.enabled && oldHealthcheck?.hcEnabled; + if (isDisablingHc) { + await fireHealthCheckUnknownAlert( + orgId, + newHealthcheck.targetHealthCheckId, + newHealthcheck.name, + newHealthcheck.targetId, + undefined, + trx + ); + } } else { await createTarget(existingResource.resourceId, targetData); } diff --git a/server/lib/statusHistory.ts b/server/lib/statusHistory.ts index 001a0b93b..896a5e302 100644 --- a/server/lib/statusHistory.ts +++ b/server/lib/statusHistory.ts @@ -18,7 +18,7 @@ export interface StatusHistoryDayBucket { uptimePercent: number; // 0-100 totalDowntimeSeconds: number; downtimeWindows: { start: number; end: number | null; status: string }[]; - status: "good" | "degraded" | "bad" | "no_data"; + status: "good" | "degraded" | "bad" | "no_data" | "unknown"; } export interface StatusHistoryResponse { @@ -54,6 +54,7 @@ export function computeBuckets( const windows: { start: number; end: number | null; status: string }[] = []; let dayDowntime = 0; + let dayDegradedTime = 0; let windowStart = dayStartSec; let windowStatus = currentStatus; @@ -63,8 +64,8 @@ export function computeBuckets( const windowEnd = evt.timestamp; const isDown = windowStatus === "offline" || - windowStatus === "unhealthy" || - windowStatus === "unknown"; + windowStatus === "unhealthy"; + const isDegraded = windowStatus === "degraded"; if (isDown) { dayDowntime += windowEnd - windowStart; windows.push({ @@ -72,6 +73,13 @@ export function computeBuckets( end: windowEnd, status: windowStatus, }); + } else if (isDegraded) { + dayDegradedTime += windowEnd - windowStart; + windows.push({ + start: windowStart, + end: windowEnd, + status: windowStatus, + }); } } windowStart = evt.timestamp; @@ -83,8 +91,8 @@ export function computeBuckets( const finalEnd = Math.min(dayEndSec, nowSec); const isDown = windowStatus === "offline" || - windowStatus === "unhealthy" || - windowStatus === "unknown"; + windowStatus === "unhealthy"; + const isDegraded = windowStatus === "degraded"; if (isDown && finalEnd > windowStart) { dayDowntime += finalEnd - windowStart; windows.push({ @@ -92,6 +100,13 @@ export function computeBuckets( end: finalEnd, status: windowStatus, }); + } else if (isDegraded && finalEnd > windowStart) { + dayDegradedTime += finalEnd - windowStart; + windows.push({ + start: windowStart, + end: finalEnd, + status: windowStatus, + }); } } @@ -105,7 +120,7 @@ export function computeBuckets( effectiveDayLength > 0 ? Math.max( 0, - ((effectiveDayLength - dayDowntime) / + ((effectiveDayLength - dayDowntime - dayDegradedTime) / effectiveDayLength) * 100 ) @@ -113,11 +128,27 @@ export function computeBuckets( const dateStr = new Date(dayStartSec * 1000).toISOString().slice(0, 10); + const hasAnyData = currentStatus !== null || dayEvents.length > 0; + + // The whole observable window is "unknown" if every status we have seen is unknown + const allStatuses = [ + ...(currentStatus !== null ? [currentStatus] : []), + ...dayEvents.map((e) => e.status) + ]; + const onlyUnknownData = + hasAnyData && allStatuses.every((s) => s === "unknown"); + let status: StatusHistoryDayBucket["status"] = "no_data"; - if (currentStatus !== null || dayEvents.length > 0) { - if (uptimePct >= 99) status = "good"; - else if (uptimePct >= 50) status = "degraded"; - else status = "bad"; + if (hasAnyData) { + if (onlyUnknownData) { + status = "unknown"; + } else if (dayDowntime > 0 && uptimePct < 50) { + status = "bad"; + } else if (dayDowntime > 0 || dayDegradedTime > 0) { + status = "degraded"; + } else { + status = "good"; + } } buckets.push({ diff --git a/server/private/lib/alerts/events/healthCheckEvents.ts b/server/private/lib/alerts/events/healthCheckEvents.ts index 9f675f4c0..04f197a8d 100644 --- a/server/private/lib/alerts/events/healthCheckEvents.ts +++ b/server/private/lib/alerts/events/healthCheckEvents.ts @@ -25,7 +25,8 @@ import { eq } from "drizzle-orm"; import { fireResourceDegradedAlert, fireResourceHealthyAlert, - fireResourceUnhealthyAlert + fireResourceUnhealthyAlert, + fireResourceUnknownAlert } from "./resourceEvents"; // --------------------------------------------------------------------------- @@ -148,6 +149,32 @@ export async function fireHealthCheckUnhealthyAlert( } } +export async function fireHealthCheckUnknownAlert( + orgId: string, + healthCheckId: number, + healthCheckName?: string | null, + healthCheckTargetId?: number | null, + extra?: Record, + trx: Transaction | typeof db = db +): Promise { + try { + await trx.insert(statusHistory).values({ + entityType: "health_check", + entityId: healthCheckId, + orgId: orgId, + status: "unknown", + timestamp: Math.floor(Date.now() / 1000) + }); + + await handleResource(orgId, healthCheckTargetId, trx); + } catch (err) { + logger.error( + `fireHealthCheckUnknownAlert: unexpected error for healthCheckId ${healthCheckId}`, + err + ); + } +} + async function handleResource(orgId: string, healthCheckTargetId?: number | null, trx: Transaction | typeof db = db) { if (!healthCheckTargetId) { return; @@ -178,10 +205,16 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null .where(eq(targets.resourceId, resource.resourceId)); let health = "healthy"; + const allUnknown = otherTargets.every((t) => t.hcHealth === "unknown"); const allHealthy = otherTargets.every((t) => t.hcHealth === "healthy"); const allUnhealthy = otherTargets.every((t) => t.hcHealth === "unhealthy"); - if (allHealthy) { + if (allUnknown) { + logger.debug( + `Marking resource ${resource.resourceId} as unknown because all health checks are disabled` + ); + health = "unknown"; + } else if (allHealthy) { health = "healthy"; } else if (allUnhealthy) { logger.debug( @@ -202,7 +235,15 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null .set({ health }) .where(eq(resources.resourceId, resource.resourceId)); - if (health === "unhealthy") { + if (health === "unknown") { + await fireResourceUnknownAlert( + orgId, + resource.resourceId, + resource.name, + undefined, + trx + ); + } else if (health === "unhealthy") { await fireResourceUnhealthyAlert( orgId, resource.resourceId, diff --git a/server/private/lib/alerts/events/resourceEvents.ts b/server/private/lib/alerts/events/resourceEvents.ts index 41c77dc11..289b19b90 100644 --- a/server/private/lib/alerts/events/resourceEvents.ts +++ b/server/private/lib/alerts/events/resourceEvents.ts @@ -183,3 +183,49 @@ export async function fireResourceDegradedAlert( ); } } + +/** + * Fire a `resource_unknown` alert for the given resource. + * + * Call this when all health checks on a resource are disabled so that the + * resource status transitions to unknown. + * + * @param orgId - Organisation that owns the resource. + * @param resourceId - Numeric primary key of the resource. + * @param resourceName - Human-readable name shown in notifications (optional). + * @param extra - Any additional key/value pairs to include in the payload. + */ +export async function fireResourceUnknownAlert( + orgId: string, + resourceId: number, + resourceName?: string | null, + extra?: Record, + trx: Transaction | typeof db = db +): Promise { + try { + await trx.insert(statusHistory).values({ + entityType: "resource", + entityId: resourceId, + orgId: orgId, + status: "unknown", + timestamp: Math.floor(Date.now() / 1000) + }); + + await processAlerts({ + eventType: "resource_toggle", + orgId, + resourceId, + data: { + resourceId, + status: "unknown", + ...(resourceName != null ? { resourceName } : {}), + ...extra + } + }); + } catch (err) { + logger.error( + `fireResourceUnknownAlert: unexpected error for resourceId ${resourceId}`, + err + ); + } +} diff --git a/server/private/lib/alerts/types.ts b/server/private/lib/alerts/types.ts new file mode 100644 index 000000000..e79db2ef5 --- /dev/null +++ b/server/private/lib/alerts/types.ts @@ -0,0 +1,63 @@ +/* + * This file is part of a proprietary work. + * + * Copyright (c) 2025-2026 Fossorial, Inc. + * All rights reserved. + * + * This file is licensed under the Fossorial Commercial License. + * You may not use this file except in compliance with the License. + * Unauthorized use, copying, modification, or distribution is strictly prohibited. + * + * This file is not licensed under the AGPLv3. + */ + +// --------------------------------------------------------------------------- +// Alert event types +// --------------------------------------------------------------------------- + +export type AlertEventType = + | "site_online" + | "site_offline" + | "health_check_healthy" + | "health_check_not_healthy"; + +// --------------------------------------------------------------------------- +// Webhook authentication config (stored as encrypted JSON in the DB) +// --------------------------------------------------------------------------- + +export type WebhookAuthType = "none" | "bearer" | "basic" | "custom"; + +/** + * Stored as an encrypted JSON blob in `alertWebhookActions.config`. + */ +export interface WebhookAlertConfig { + /** Authentication strategy for the webhook endpoint */ + authType: WebhookAuthType; + /** Bearer token – used when authType === "bearer" */ + bearerToken?: string; + /** Basic credentials – "username:password" – used when authType === "basic" */ + basicCredentials?: string; + /** Custom header name – used when authType === "custom" */ + customHeaderName?: string; + /** Custom header value – used when authType === "custom" */ + customHeaderValue?: string; + /** Extra headers to send with every webhook request */ + headers?: Array<{ key: string; value: string }>; + /** HTTP method (default POST) */ + method?: string; +} + +// --------------------------------------------------------------------------- +// Internal alert event passed through the processing pipeline +// --------------------------------------------------------------------------- + +export interface AlertContext { + eventType: AlertEventType; + orgId: string; + /** Set for site_online / site_offline events */ + siteId?: number; + /** Set for health_check_* events */ + healthCheckId?: number; + /** Human-readable context data included in emails and webhook payloads */ + data: Record; +} \ No newline at end of file diff --git a/server/routers/target/updateTarget.ts b/server/routers/target/updateTarget.ts index dad302de8..21f52566f 100644 --- a/server/routers/target/updateTarget.ts +++ b/server/routers/target/updateTarget.ts @@ -10,6 +10,7 @@ import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { addPeer } from "../gerbil/peers"; import { addTargets } from "../newt/targets"; +import { fireHealthCheckUnknownAlert } from "#dynamic/lib/alerts"; import { pickPort } from "./helpers"; import { isTargetValid } from "@server/lib/validators"; import { OpenAPITags, registry } from "@server/openApi"; @@ -225,6 +226,11 @@ export async function updateTarget( hcHealthValue = undefined; } + const isDisablingHc = + (parsedBody.data.hcEnabled === false || + parsedBody.data.hcEnabled === null) && + existingHc.hcEnabled === true; + const [updatedHc] = await db .update(targetHealthCheck) .set({ @@ -250,6 +256,15 @@ export async function updateTarget( .where(eq(targetHealthCheck.targetId, targetId)) .returning(); + if (isDisablingHc) { + await fireHealthCheckUnknownAlert( + resource.orgId, + existingHc.targetHealthCheckId, + existingHc.name, + updatedHc.targetId + ); + } + if (site.pubKey) { if (site.type == "wireguard") { await addPeer(site.exitNodeId!, { diff --git a/src/app/admin/users/AdminUsersTable.tsx b/src/app/admin/users/AdminUsersTable.tsx new file mode 100644 index 000000000..1c7d1b7fd --- /dev/null +++ b/src/app/admin/users/AdminUsersTable.tsx @@ -0,0 +1,264 @@ +"use client"; + +import { UsersDataTable } from "@app/components/AdminUsersDataTable"; +import { Button } from "@app/components/ui/button"; +import { ArrowRight, ArrowUpDown, MoreHorizontal } from "lucide-react"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; +import ConfirmDeleteDialog from "@app/components/ConfirmDeleteDialog"; +import { toast } from "@app/hooks/useToast"; +import { formatAxiosError } from "@app/lib/api"; +import { createApiClient } from "@app/lib/api"; +import { useEnvContext } from "@app/hooks/useEnvContext"; +import { useTranslations } from "next-intl"; +import { + DropdownMenu, + DropdownMenuItem, + DropdownMenuContent, + DropdownMenuTrigger +} from "@app/components/ui/dropdown-menu"; +import { ExtendedColumnDef } from "@app/components/ui/data-table"; + +export type GlobalUserRow = { + id: string; + name: string | null; + username: string; + email: string | null; + type: string; + idpId: number | null; + idpName: string; + dateCreated: string; + twoFactorEnabled: boolean | null; + twoFactorSetupRequested: boolean | null; +}; + +type Props = { + users: GlobalUserRow[]; +}; + +export default function UsersTable({ users }: Props) { + const router = useRouter(); + const t = useTranslations(); + + const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); + const [selected, setSelected] = useState(null); + const [rows, setRows] = useState(users); + + const api = createApiClient(useEnvContext()); + + const deleteUser = (id: string) => { + api.delete(`/user/${id}`) + .catch((e) => { + console.error(t("userErrorDelete"), e); + toast({ + variant: "destructive", + title: t("userErrorDelete"), + description: formatAxiosError(e, t("userErrorDelete")) + }); + }) + .then(() => { + router.refresh(); + setIsDeleteModalOpen(false); + + const newRows = rows.filter((row) => row.id !== id); + + setRows(newRows); + }); + }; + + const columns: ExtendedColumnDef[] = [ + { + accessorKey: "id", + friendlyName: "ID", + header: ({ column }) => { + return ( + + ); + } + }, + { + accessorKey: "username", + friendlyName: t("username"), + header: ({ column }) => { + return ( + + ); + } + }, + { + accessorKey: "email", + friendlyName: t("email"), + header: ({ column }) => { + return ( + + ); + } + }, + { + accessorKey: "name", + friendlyName: t("name"), + header: ({ column }) => { + return ( + + ); + } + }, + { + accessorKey: "idpName", + friendlyName: t("identityProvider"), + header: ({ column }) => { + return ( + + ); + } + }, + { + accessorKey: "twoFactorEnabled", + friendlyName: t("twoFactor"), + header: ({ column }) => { + return ( + + ); + }, + cell: ({ row }) => { + const userRow = row.original; + + return ( +
+ + {userRow.twoFactorEnabled || + userRow.twoFactorSetupRequested ? ( + + {t("enabled")} + + ) : ( + {t("disabled")} + )} + +
+ ); + } + }, + { + id: "actions", + header: () => {t("actions")}, + cell: ({ row }) => { + const r = row.original; + return ( + <> +
+ + + + + + + { + setSelected(r); + setIsDeleteModalOpen(true); + }} + > + {t("delete")} + + + +
+ + ); + } + } + ]; + + return ( + <> + {selected && ( + { + setIsDeleteModalOpen(val); + setSelected(null); + }} + dialog={ +
+

{t("userQuestionRemove")}

+ +

{t("userMessageRemove")}

+
+ } + buttonText={t("userDeleteConfirm")} + onConfirm={async () => deleteUser(selected!.id)} + string={ + selected.email || selected.name || selected.username + } + title={t("userDeleteServer")} + /> + )} + + + + ); +} diff --git a/src/components/AdminUsersDataTable.tsx b/src/components/AdminUsersDataTable.tsx new file mode 100644 index 000000000..afa473e86 --- /dev/null +++ b/src/components/AdminUsersDataTable.tsx @@ -0,0 +1,37 @@ +"use client"; + +import { ColumnDef } from "@tanstack/react-table"; +import { DataTable } from "@app/components/ui/data-table"; +import { useTranslations } from "next-intl"; + +interface DataTableProps { + columns: ColumnDef[]; + data: TData[]; + onRefresh?: () => void; + isRefreshing?: boolean; +} + +export function UsersDataTable({ + columns, + data, + onRefresh, + isRefreshing +}: DataTableProps) { + const t = useTranslations(); + + return ( + + ); +} diff --git a/src/components/RolesDataTable.tsx b/src/components/RolesDataTable.tsx new file mode 100644 index 000000000..5a2d1cb4c --- /dev/null +++ b/src/components/RolesDataTable.tsx @@ -0,0 +1,41 @@ +"use client"; + +import { ColumnDef } from "@tanstack/react-table"; +import { DataTable } from "@app/components/ui/data-table"; +import { useTranslations } from "next-intl"; + +interface DataTableProps { + columns: ColumnDef[]; + data: TData[]; + createRole?: () => void; + onRefresh?: () => void; + isRefreshing?: boolean; +} + +export function RolesDataTable({ + columns, + data, + createRole, + onRefresh, + isRefreshing +}: DataTableProps) { + const t = useTranslations(); + + return ( + + ); +} diff --git a/src/components/UptimeBar.tsx b/src/components/UptimeBar.tsx index 5bd5ce3f1..37e38bcaa 100644 --- a/src/components/UptimeBar.tsx +++ b/src/components/UptimeBar.tsx @@ -42,7 +42,8 @@ const barColorClass: Record = { good: "bg-green-500", degraded: "bg-yellow-500", bad: "bg-red-500", - no_data: "bg-neutral-200 dark:bg-neutral-700" + no_data: "bg-neutral-200 dark:bg-neutral-700", + unknown: "bg-neutral-200 dark:bg-neutral-700" }; type UptimeBarProps = { @@ -188,7 +189,7 @@ export default function UptimeBar({
{formatDate(day.date)}
- {day.status !== "no_data" && ( + {day.status !== "no_data" && day.status !== "unknown" && (
{t("uptimeTooltipUptimeLabel")}:{" "} @@ -224,7 +225,7 @@ export default function UptimeBar({ ))}
)} - {day.status === "no_data" && ( + {(day.status === "no_data" || day.status === "unknown") && (
{t("uptimeNoMonitoringData")}
diff --git a/src/components/UptimeMiniBar.tsx b/src/components/UptimeMiniBar.tsx index b4c8aa3bd..b7e684c8b 100644 --- a/src/components/UptimeMiniBar.tsx +++ b/src/components/UptimeMiniBar.tsx @@ -34,7 +34,8 @@ const barColorClass: Record = { good: "bg-green-500", degraded: "bg-yellow-500", bad: "bg-red-500", - no_data: "bg-neutral-200 dark:bg-neutral-700" + no_data: "bg-neutral-200 dark:bg-neutral-700", + unknown: "bg-neutral-200 dark:bg-neutral-700" }; type UptimeMiniBarProps = { @@ -137,7 +138,7 @@ export default function UptimeMiniBar({ {formatDate(day.date)}
- {day.status === "no_data" + {day.status === "no_data" || day.status === "unknown" ? t("uptimeNoData") : `${day.uptimePercent.toFixed(1)}% ${t("uptimeSuffix")}`}
diff --git a/src/components/UsersDataTable.tsx b/src/components/UsersDataTable.tsx new file mode 100644 index 000000000..ececa4c17 --- /dev/null +++ b/src/components/UsersDataTable.tsx @@ -0,0 +1,41 @@ +"use client"; + +import { ColumnDef } from "@tanstack/react-table"; +import { DataTable } from "@app/components/ui/data-table"; +import { useTranslations } from "next-intl"; + +interface DataTableProps { + columns: ColumnDef[]; + data: TData[]; + inviteUser?: () => void; + onRefresh?: () => void; + isRefreshing?: boolean; +} + +export function UsersDataTable({ + columns, + data, + inviteUser, + onRefresh, + isRefreshing +}: DataTableProps) { + const t = useTranslations(); + + return ( + + ); +} diff --git a/src/lib/alertRulesLocalStorage.ts b/src/lib/alertRulesLocalStorage.ts new file mode 100644 index 000000000..2471219b0 --- /dev/null +++ b/src/lib/alertRulesLocalStorage.ts @@ -0,0 +1,129 @@ +import { z } from "zod"; + +const STORAGE_PREFIX = "pangolin:alert-rules:"; + +export const webhookHeaderEntrySchema = z.object({ + key: z.string(), + value: z.string() +}); + +export const alertActionSchema = z.discriminatedUnion("type", [ + z.object({ + type: z.literal("notify"), + userIds: z.array(z.string()), + roleIds: z.array(z.number()), + emails: z.array(z.string()) + }), + z.object({ + type: z.literal("webhook"), + url: z.string().url(), + method: z.string().min(1), + headers: z.array(webhookHeaderEntrySchema), + secret: z.string().optional() + }) +]); + +export const alertSourceSchema = z.discriminatedUnion("type", [ + z.object({ + type: z.literal("site"), + siteIds: z.array(z.number()) + }), + z.object({ + type: z.literal("health_check"), + targetIds: z.array(z.number()) + }) +]); + +export const alertTriggerSchema = z.enum([ + "site_online", + "site_offline", + "health_check_healthy", + "health_check_unhealthy" +]); + +export const alertRuleSchema = z.object({ + id: z.string().uuid(), + name: z.string().min(1).max(255), + enabled: z.boolean(), + createdAt: z.string(), + updatedAt: z.string(), + source: alertSourceSchema, + trigger: alertTriggerSchema, + actions: z.array(alertActionSchema).min(1) +}); + +export type AlertRule = z.infer; +export type AlertAction = z.infer; +export type AlertTrigger = z.infer; + +function storageKey(orgId: string) { + return `${STORAGE_PREFIX}${orgId}`; +} + +export function getRule(orgId: string, ruleId: string): AlertRule | undefined { + return loadRules(orgId).find((r) => r.id === ruleId); +} + +export function loadRules(orgId: string): AlertRule[] { + if (typeof window === "undefined") { + return []; + } + try { + const raw = localStorage.getItem(storageKey(orgId)); + if (!raw) { + return []; + } + const parsed = JSON.parse(raw) as unknown; + if (!Array.isArray(parsed)) { + return []; + } + const out: AlertRule[] = []; + for (const item of parsed) { + const r = alertRuleSchema.safeParse(item); + if (r.success) { + out.push(r.data); + } + } + return out; + } catch { + return []; + } +} + +export function saveRules(orgId: string, rules: AlertRule[]) { + if (typeof window === "undefined") { + return; + } + localStorage.setItem(storageKey(orgId), JSON.stringify(rules)); +} + +export function upsertRule(orgId: string, rule: AlertRule) { + const rules = loadRules(orgId); + const i = rules.findIndex((r) => r.id === rule.id); + if (i >= 0) { + rules[i] = rule; + } else { + rules.push(rule); + } + saveRules(orgId, rules); +} + +export function deleteRule(orgId: string, ruleId: string) { + const rules = loadRules(orgId).filter((r) => r.id !== ruleId); + saveRules(orgId, rules); +} + +export function newRuleId() { + if (typeof crypto !== "undefined" && crypto.randomUUID) { + return crypto.randomUUID(); + } + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => { + const r = (Math.random() * 16) | 0; + const v = c === "x" ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); +} + +export function isoNow() { + return new Date().toISOString(); +} From 6f6c24b6df59cabec624aa53cca5b7639a1d0f12 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Sat, 25 Apr 2026 15:42:19 -0700 Subject: [PATCH 030/131] use semibold --- server/routers/resource/listResources.ts | 17 +++--- .../routers/siteResource/listSiteResources.ts | 6 +-- .../settings/(private)/billing/page.tsx | 13 +++-- src/app/[orgId]/settings/not-found.tsx | 2 +- src/app/auth/initial-setup/page.tsx | 2 +- src/app/auth/login/device/success/page.tsx | 14 +++-- src/app/auth/login/page.tsx | 2 +- src/app/auth/signup/page.tsx | 2 +- src/app/not-found.tsx | 2 +- src/components/AccessToken.tsx | 2 +- src/components/AccessTokenUsage.tsx | 4 +- src/components/ConfirmDeleteDialog.tsx | 6 ++- src/components/DNSRecordsDataTable.tsx | 2 +- src/components/DeleteAccountConfirmDialog.tsx | 2 +- src/components/InviteStatusCard.tsx | 2 +- src/components/MemberResourcesPortal.tsx | 4 +- src/components/OptionSelect.tsx | 10 ++-- src/components/OrgSelector.tsx | 2 +- src/components/OrganizationLandingCard.tsx | 4 +- src/components/ResourceAccessDenied.tsx | 2 +- src/components/ResourceNotFound.tsx | 2 +- src/components/Settings.tsx | 2 +- src/components/SettingsSectionTitle.tsx | 2 +- src/components/SiteResourcesOverview.tsx | 2 +- src/components/newt-install-commands.tsx | 18 ++++--- src/components/olm-install-commands.tsx | 54 +++++++++---------- src/components/tags/tag.tsx | 2 +- 27 files changed, 95 insertions(+), 87 deletions(-) diff --git a/server/routers/resource/listResources.ts b/server/routers/resource/listResources.ts index 9127d74e6..c84a80205 100644 --- a/server/routers/resource/listResources.ts +++ b/server/routers/resource/listResources.ts @@ -114,16 +114,11 @@ const listResourcesSchema = z.object({ description: "Filter resources based on health status of their targets. `healthy` means all targets are healthy. `degraded` means at least one target is unhealthy, but not all are unhealthy. `offline` means all targets are unhealthy. `unknown` means all targets have unknown health status. `no_targets` means the resource has no targets." }), - siteId: z.coerce - .number() - .int() - .positive() - .optional() - .openapi({ - type: "integer", - description: - "When set, only resources that have at least one target on this site are returned" - }) + siteId: z.coerce.number().int().positive().optional().openapi({ + type: "integer", + description: + "When set, only resources that have at least one target on this site are returned" + }) }); // grouped by resource with targets[]) @@ -270,6 +265,8 @@ export async function listResources( ); } + await new Promise((resolve) => setTimeout(resolve, 3 * 1000)); + const orgId = parsedParams.data.orgId || req.userOrg?.orgId || diff --git a/server/routers/siteResource/listSiteResources.ts b/server/routers/siteResource/listSiteResources.ts index 8a1469f76..61460c2d0 100644 --- a/server/routers/siteResource/listSiteResources.ts +++ b/server/routers/siteResource/listSiteResources.ts @@ -112,10 +112,7 @@ export async function listSiteResources( const siteResourcesList = await db .select() .from(siteNetworks) - .innerJoin( - networks, - eq(siteNetworks.networkId, networks.networkId) - ) + .innerJoin(networks, eq(siteNetworks.networkId, networks.networkId)) .innerJoin( siteResources, eq(siteResources.networkId, networks.networkId) @@ -136,7 +133,6 @@ export async function listSiteResources( .limit(limit) .offset(offset); - return response(res, { data: { siteResources: siteResourcesList }, success: true, diff --git a/src/app/[orgId]/settings/(private)/billing/page.tsx b/src/app/[orgId]/settings/(private)/billing/page.tsx index 8f714336a..778062e8e 100644 --- a/src/app/[orgId]/settings/(private)/billing/page.tsx +++ b/src/app/[orgId]/settings/(private)/billing/page.tsx @@ -836,7 +836,14 @@ export default function BillingPage() { {/* Plan Cards Grid */} -
+
{visiblePlanOptions.map((plan) => { const isCurrentPlan = plan.id === currentPlanId; const planAction = getPlanAction(plan); @@ -967,7 +974,7 @@ export default function BillingPage() { {t("billingCurrentUsage") || "Current Usage"}
- + {getUserCount()} @@ -1298,7 +1305,7 @@ export default function BillingPage() { "Current Keys"}
- + {getLicenseKeyCount()} diff --git a/src/app/[orgId]/settings/not-found.tsx b/src/app/[orgId]/settings/not-found.tsx index d3ca37ccf..680962d23 100644 --- a/src/app/[orgId]/settings/not-found.tsx +++ b/src/app/[orgId]/settings/not-found.tsx @@ -5,7 +5,7 @@ export default async function NotFound() { return (
-

404

+

404

{t("pageNotFound")}

diff --git a/src/app/auth/initial-setup/page.tsx b/src/app/auth/initial-setup/page.tsx index 4a4438964..bf38eee9e 100644 --- a/src/app/auth/initial-setup/page.tsx +++ b/src/app/auth/initial-setup/page.tsx @@ -92,7 +92,7 @@ export default function InitialSetupPage() { />
-

+

{t("initialSetupTitle")}

diff --git a/src/app/auth/login/device/success/page.tsx b/src/app/auth/login/device/success/page.tsx index dab609351..56f84c835 100644 --- a/src/app/auth/login/device/success/page.tsx +++ b/src/app/auth/login/device/success/page.tsx @@ -23,8 +23,10 @@ export default function DeviceAuthSuccessPage() { useEffect(() => { // Detect if we're on iOS or Android - const userAgent = navigator.userAgent || navigator.vendor || (window as any).opera; - const isIOS = /iPad|iPhone|iPod/.test(userAgent) && !(window as any).MSStream; + const userAgent = + navigator.userAgent || navigator.vendor || (window as any).opera; + const isIOS = + /iPad|iPhone|iPod/.test(userAgent) && !(window as any).MSStream; const isAndroid = /android/i.test(userAgent); if (isAndroid) { @@ -32,7 +34,8 @@ export default function DeviceAuthSuccessPage() { // This explicitly tells Chrome to send an intent to the app, which will bring // SignInCodeActivity back to the foreground (it has launchMode="singleTop") setTimeout(() => { - window.location.href = "intent://auth-success#Intent;scheme=pangolin;package=net.pangolin.Pangolin;end"; + window.location.href = + "intent://auth-success#Intent;scheme=pangolin;package=net.pangolin.Pangolin;end"; }, 500); } else if (isIOS) { // Wait 500ms then attempt to open the app @@ -41,7 +44,8 @@ export default function DeviceAuthSuccessPage() { window.location.href = "pangolin://"; setTimeout(() => { - window.location.href = "https://apps.apple.com/app/pangolin/net.pangolin.Pangolin.PangoliniOS"; + window.location.href = + "https://apps.apple.com/app/pangolin/net.pangolin.Pangolin.PangoliniOS"; }, 2000); }, 500); } @@ -64,7 +68,7 @@ export default function DeviceAuthSuccessPage() {
-

+

{t("deviceConnected")}

diff --git a/src/app/auth/login/page.tsx b/src/app/auth/login/page.tsx index 9b1639925..c2aaefaa6 100644 --- a/src/app/auth/login/page.tsx +++ b/src/app/auth/login/page.tsx @@ -135,7 +135,7 @@ export default async function Page(props: {

-

+

{t("inviteAlready")}

diff --git a/src/app/auth/signup/page.tsx b/src/app/auth/signup/page.tsx index be138c45d..42829acfd 100644 --- a/src/app/auth/signup/page.tsx +++ b/src/app/auth/signup/page.tsx @@ -65,7 +65,7 @@ export default async function Page(props: {

-

+

{t("inviteAlready")}

diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx index d3ca37ccf..680962d23 100644 --- a/src/app/not-found.tsx +++ b/src/app/not-found.tsx @@ -5,7 +5,7 @@ export default async function NotFound() { return (

-

404

+

404

{t("pageNotFound")}

diff --git a/src/components/AccessToken.tsx b/src/components/AccessToken.tsx index 54f926433..802be769a 100644 --- a/src/components/AccessToken.tsx +++ b/src/components/AccessToken.tsx @@ -143,7 +143,7 @@ export default function AccessToken({ token, resourceId }: AccessTokenProps) { ) : ( - + {renderTitle()} diff --git a/src/components/AccessTokenUsage.tsx b/src/components/AccessTokenUsage.tsx index 4b1703717..b10f793d0 100644 --- a/src/components/AccessTokenUsage.tsx +++ b/src/components/AccessTokenUsage.tsx @@ -58,12 +58,12 @@ export default function AccessTokenSection({
-
{t("tokenId")}
+
{t("tokenId")}
-
{t("token")}
+
{t("token")}
diff --git a/src/components/ConfirmDeleteDialog.tsx b/src/components/ConfirmDeleteDialog.tsx index 4c5c6ad63..32fc83179 100644 --- a/src/components/ConfirmDeleteDialog.tsx +++ b/src/components/ConfirmDeleteDialog.tsx @@ -92,7 +92,7 @@ export default function ConfirmDeleteDialog({
{dialog} -
+
{warningText || t("cannotbeUndone")}
@@ -142,7 +142,9 @@ export default function ConfirmDeleteDialog({ form="confirm-delete-form" loading={loading} disabled={loading || !isConfirmed} - className={!isConfirmed && !loading ? "opacity-50" : ""} + className={ + !isConfirmed && !loading ? "opacity-50" : "" + } > {buttonText} diff --git a/src/components/DNSRecordsDataTable.tsx b/src/components/DNSRecordsDataTable.tsx index 0a9eaa7d4..4e7839000 100644 --- a/src/components/DNSRecordsDataTable.tsx +++ b/src/components/DNSRecordsDataTable.tsx @@ -107,7 +107,7 @@ export function DNSRecordsDataTable({
-

{t("dnsRecord")}

+

{t("dnsRecord")}

{t("required")}
)}
-

+

{t("cannotbeUndone")}

diff --git a/src/components/InviteStatusCard.tsx b/src/components/InviteStatusCard.tsx index 5de8f25fd..f35f47629 100644 --- a/src/components/InviteStatusCard.tsx +++ b/src/components/InviteStatusCard.tsx @@ -204,7 +204,7 @@ export default function InviteStatusCard({
- + {loading ? t("checkingInvite") : t("inviteNotAccepted")} diff --git a/src/components/MemberResourcesPortal.tsx b/src/components/MemberResourcesPortal.tsx index 602735e56..0ca6c550b 100644 --- a/src/components/MemberResourcesPortal.tsx +++ b/src/components/MemberResourcesPortal.tsx @@ -720,7 +720,7 @@ export default function MemberResourcesPortal({ - + { resource.name } @@ -822,7 +822,7 @@ export default function MemberResourcesPortal({ - + { siteResource.name } diff --git a/src/components/OptionSelect.tsx b/src/components/OptionSelect.tsx index 2f891394b..21a95c225 100644 --- a/src/components/OptionSelect.tsx +++ b/src/components/OptionSelect.tsx @@ -32,9 +32,7 @@ export function OptionSelect({ }: OptionSelectProps) { return (
- {label && ( -

{label}

- )} + {label &&

{label}

}
({ - )} + {isPending ? ( + + ) : ( + + + {cert.status.charAt(0).toUpperCase() + cert.status.slice(1)} + {shouldShowRefreshButton(cert.status, cert.updatedAt) && ( + + )} + - + )}
); } From 06af53c4d6e6b6bc105d435b9d6c03d5e2754d01 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Sun, 26 Apr 2026 16:57:10 -0700 Subject: [PATCH 037/131] increase refresh rate --- src/components/ClientResourcesTable.tsx | 9 ++++++++- src/components/HealthChecksTable.tsx | 2 +- src/components/ProxyResourcesTable.tsx | 5 ++--- src/components/SitesTable.tsx | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index d60d58d76..a772fb576 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -36,7 +36,7 @@ import { useTranslations } from "next-intl"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { Selectedsite, SitesSelector } from "@app/components/site-selector"; -import { useMemo, useState, useTransition } from "react"; +import { useEffect, useMemo, useState, useTransition } from "react"; import CreateInternalResourceDialog from "@app/components/CreateInternalResourceDialog"; import EditInternalResourceDialog from "@app/components/EditInternalResourceDialog"; @@ -144,6 +144,13 @@ export default function ClientResourcesTable({ const [isRefreshing, startTransition] = useTransition(); + useEffect(() => { + const interval = setInterval(() => { + router.refresh(); + }, 30_000); + return () => clearInterval(interval); + }, [router]); + const siteIdQ = searchParams.get("siteId"); const siteIdNum = siteIdQ ? parseInt(siteIdQ, 10) : NaN; const selectedSite: Selectedsite | null = useMemo(() => { diff --git a/src/components/HealthChecksTable.tsx b/src/components/HealthChecksTable.tsx index 9545cbb7d..75aaebcff 100644 --- a/src/components/HealthChecksTable.tsx +++ b/src/components/HealthChecksTable.tsx @@ -166,7 +166,7 @@ export default function HealthChecksTable({ useEffect(() => { const interval = setInterval(() => { router.refresh(); - }, 10_000); + }, 30_000); return () => clearInterval(interval); }, [router]); diff --git a/src/components/ProxyResourcesTable.tsx b/src/components/ProxyResourcesTable.tsx index 2b56eb98d..01cd17635 100644 --- a/src/components/ProxyResourcesTable.tsx +++ b/src/components/ProxyResourcesTable.tsx @@ -178,7 +178,7 @@ export default function ProxyResourcesTable({ useEffect(() => { const interval = setInterval(() => { router.refresh(); - }, 10_000); + }, 30_000); return () => clearInterval(interval); }, [router]); @@ -387,8 +387,7 @@ export default function ProxyResourcesTable({ }, { id: "sites", - accessorFn: (row) => - row.sites.map((s) => s.siteName).join(", "), + accessorFn: (row) => row.sites.map((s) => s.siteName).join(", "), friendlyName: t("sites"), header: () => ( diff --git a/src/components/SitesTable.tsx b/src/components/SitesTable.tsx index 8eba5cee5..4ab35359e 100644 --- a/src/components/SitesTable.tsx +++ b/src/components/SitesTable.tsx @@ -102,7 +102,7 @@ export default function SitesTable({ useEffect(() => { const interval = setInterval(() => { router.refresh(); - }, 10_000); + }, 30_000); return () => clearInterval(interval); }, []); From ca2370e31d7179781c15130dcddb14ed3e9ea7ba Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 26 Apr 2026 17:28:57 -0700 Subject: [PATCH 038/131] Add logging when manually changing the hc status --- messages/en-US.json | 3 +- server/lib/blueprints/proxyResources.ts | 2 + .../lib/alerts/events/healthCheckEvents.ts | 17 ++++++++- .../private/lib/alerts/events/siteEvents.ts | 1 + .../alertEvents/triggerHealthCheckAlert.ts | 2 +- .../alertEvents/triggerResourceAlert.ts | 3 +- .../routers/alertEvents/triggerSiteAlert.ts | 2 +- .../routers/healthChecks/createHealthCheck.ts | 10 +++++ .../routers/healthChecks/updateHealthCheck.ts | 32 ++++++++++++++++ .../newt/handleNewtDisconnectingMessage.ts | 2 +- server/routers/newt/offlineChecker.ts | 5 +-- server/routers/newt/registerNewt.ts | 10 ++++- server/routers/site/createSite.ts | 20 ++++++---- server/routers/target/createTarget.ts | 38 ++++++++++++++++++- .../target/handleHealthcheckStatusMessage.ts | 8 ++-- server/routers/target/updateTarget.ts | 34 ++++++++++++++--- .../alerting/(list)/health-checks/page.tsx | 4 +- src/components/DomainPicker.tsx | 1 + src/components/HealthChecksTable.tsx | 3 +- src/components/PaidFeaturesAlert.tsx | 7 +++- src/components/ProxyResourcesTable.tsx | 11 +----- 21 files changed, 170 insertions(+), 45 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 5d4facf1c..d2b79bd35 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -3196,5 +3196,6 @@ "alertLabel": "Alert", "domainPickerWildcardSubdomainNotAllowed": "Wildcard subdomains are not allowed.", "domainPickerWildcardCertWarning": "Wildcard certificates must be configured separately in Traefik.", - "domainPickerWildcardCertWarningLink": "Learn more" + "domainPickerWildcardCertWarningLink": "Learn more", + "health": "Health" } diff --git a/server/lib/blueprints/proxyResources.ts b/server/lib/blueprints/proxyResources.ts index fc1fee5b0..ba93bc46a 100644 --- a/server/lib/blueprints/proxyResources.ts +++ b/server/lib/blueprints/proxyResources.ts @@ -179,6 +179,7 @@ export async function updateProxyResources( newHealthcheck.name, newHealthcheck.targetId, undefined, + true, trx ); } @@ -581,6 +582,7 @@ export async function updateProxyResources( newHealthcheck.name, newHealthcheck.targetId, undefined, + true, trx ); } diff --git a/server/private/lib/alerts/events/healthCheckEvents.ts b/server/private/lib/alerts/events/healthCheckEvents.ts index 04f197a8d..48aef424f 100644 --- a/server/private/lib/alerts/events/healthCheckEvents.ts +++ b/server/private/lib/alerts/events/healthCheckEvents.ts @@ -50,7 +50,8 @@ export async function fireHealthCheckHealthyAlert( healthCheckName?: string | null, healthCheckTargetId?: number | null, extra?: Record, - trx: Transaction | typeof db = db + send: boolean = true, + trx: Transaction | typeof db = db, ): Promise { try { await trx.insert(statusHistory).values({ @@ -63,6 +64,10 @@ export async function fireHealthCheckHealthyAlert( await handleResource(orgId, healthCheckTargetId, trx); + if (!send) { + return; + } + await processAlerts({ eventType: "health_check_healthy", orgId, @@ -108,6 +113,7 @@ export async function fireHealthCheckUnhealthyAlert( healthCheckName?: string | null, healthCheckTargetId?: number | null, extra?: Record, + send: boolean = true, trx: Transaction | typeof db = db ): Promise { try { @@ -121,6 +127,10 @@ export async function fireHealthCheckUnhealthyAlert( await handleResource(orgId, healthCheckTargetId, trx); + if (!send) { + return; + } + await processAlerts({ eventType: "health_check_unhealthy", orgId, @@ -155,6 +165,7 @@ export async function fireHealthCheckUnknownAlert( healthCheckName?: string | null, healthCheckTargetId?: number | null, extra?: Record, + send: boolean = true, trx: Transaction | typeof db = db ): Promise { try { @@ -167,6 +178,10 @@ export async function fireHealthCheckUnknownAlert( }); await handleResource(orgId, healthCheckTargetId, trx); + + if (!send) { + return; + } } catch (err) { logger.error( `fireHealthCheckUnknownAlert: unexpected error for healthCheckId ${healthCheckId}`, diff --git a/server/private/lib/alerts/events/siteEvents.ts b/server/private/lib/alerts/events/siteEvents.ts index 562accc18..36e3dacff 100644 --- a/server/private/lib/alerts/events/siteEvents.ts +++ b/server/private/lib/alerts/events/siteEvents.ts @@ -125,6 +125,7 @@ export async function fireSiteOfflineAlert( healthCheck.name, undefined, undefined, + true, trx ); } diff --git a/server/private/routers/alertEvents/triggerHealthCheckAlert.ts b/server/private/routers/alertEvents/triggerHealthCheckAlert.ts index 0590c2bcd..530557463 100644 --- a/server/private/routers/alertEvents/triggerHealthCheckAlert.ts +++ b/server/private/routers/alertEvents/triggerHealthCheckAlert.ts @@ -14,7 +14,7 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; import { db } from "@server/db"; -import { targetHealthCheck, statusHistory } from "@server/db"; +import { targetHealthCheck } from "@server/db"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; diff --git a/server/private/routers/alertEvents/triggerResourceAlert.ts b/server/private/routers/alertEvents/triggerResourceAlert.ts index a43b8e201..afda63e9a 100644 --- a/server/private/routers/alertEvents/triggerResourceAlert.ts +++ b/server/private/routers/alertEvents/triggerResourceAlert.ts @@ -14,7 +14,7 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; import { db } from "@server/db"; -import { resources, statusHistory } from "@server/db"; +import { resources } from "@server/db"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; @@ -24,7 +24,6 @@ import { eq, and } from "drizzle-orm"; import { fireResourceHealthyAlert, fireResourceUnhealthyAlert, - fireResourceToggleAlert, fireResourceDegradedAlert } from "#private/lib/alerts/events/resourceEvents"; diff --git a/server/private/routers/alertEvents/triggerSiteAlert.ts b/server/private/routers/alertEvents/triggerSiteAlert.ts index a7fa0cafc..25b14acb9 100644 --- a/server/private/routers/alertEvents/triggerSiteAlert.ts +++ b/server/private/routers/alertEvents/triggerSiteAlert.ts @@ -14,7 +14,7 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; import { db } from "@server/db"; -import { sites, statusHistory } from "@server/db"; +import { sites } from "@server/db"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; diff --git a/server/private/routers/healthChecks/createHealthCheck.ts b/server/private/routers/healthChecks/createHealthCheck.ts index ada583a70..ead58e996 100644 --- a/server/private/routers/healthChecks/createHealthCheck.ts +++ b/server/private/routers/healthChecks/createHealthCheck.ts @@ -22,6 +22,7 @@ import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { OpenAPITags, registry } from "@server/openApi"; import { addStandaloneHealthCheck } from "@server/routers/newt/targets"; +import { fireHealthCheckUnhealthyAlert } from "#private/lib/alerts"; const paramsSchema = z.strictObject({ orgId: z.string().nonempty() @@ -146,6 +147,15 @@ export async function createHealthCheck( }) .returning(); + await fireHealthCheckUnhealthyAlert( + record.orgId, + record.targetHealthCheckId, + record.name || "", + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet + ); + // Push health check to newt if the site is a newt site if (siteId) { const [site] = await db diff --git a/server/private/routers/healthChecks/updateHealthCheck.ts b/server/private/routers/healthChecks/updateHealthCheck.ts index 47a9518a9..8afeca6a4 100644 --- a/server/private/routers/healthChecks/updateHealthCheck.ts +++ b/server/private/routers/healthChecks/updateHealthCheck.ts @@ -22,6 +22,7 @@ import { fromError } from "zod-validation-error"; import { OpenAPITags, registry } from "@server/openApi"; import { and, eq, isNull } from "drizzle-orm"; import { addStandaloneHealthCheck } from "@server/routers/newt/targets"; +import { fireHealthCheckUnhealthyAlert, fireHealthCheckUnknownAlert, fireHealthCheckHealthyAlert } from "#private/lib/alerts"; const paramsSchema = z .object({ @@ -233,6 +234,37 @@ export async function updateHealthCheck( ) .returning(); + if (updated.hcHealth === "unhealthy" && existingHealthCheck.hcHealth !== "unhealthy") { + await fireHealthCheckUnhealthyAlert( + updated.orgId, + updated.targetHealthCheckId, + updated.name || "", + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet + ); + } else if (updated.hcHealth === "unknown" && existingHealthCheck.hcHealth !== "unknown") { + // if the health is unknown, we want to fire an alert to notify users to enable health checks + await fireHealthCheckUnknownAlert( + updated.orgId, + updated.targetHealthCheckId, + updated.name, + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet + ); + } else if (updated.hcHealth === "healthy" && existingHealthCheck.hcHealth !== "healthy") { + await fireHealthCheckHealthyAlert( + updated.orgId, + updated.targetHealthCheckId, + updated.name, + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet + ); + } + + // Push updated health check to newt if the site is a newt site const [newt] = await db .select() diff --git a/server/routers/newt/handleNewtDisconnectingMessage.ts b/server/routers/newt/handleNewtDisconnectingMessage.ts index 15c7d3662..a05d410c8 100644 --- a/server/routers/newt/handleNewtDisconnectingMessage.ts +++ b/server/routers/newt/handleNewtDisconnectingMessage.ts @@ -6,7 +6,7 @@ import { } from "@server/db"; import { eq } from "drizzle-orm"; import logger from "@server/logger"; -import { fireSiteOfflineAlert } from "@server/lib/alerts"; +import { fireSiteOfflineAlert } from "#dynamic/lib/alerts"; /** * Handles disconnecting messages from sites to show disconnected in the ui diff --git a/server/routers/newt/offlineChecker.ts b/server/routers/newt/offlineChecker.ts index 1dc51d5da..6ff43688a 100644 --- a/server/routers/newt/offlineChecker.ts +++ b/server/routers/newt/offlineChecker.ts @@ -1,10 +1,7 @@ import { db, newts, - sites, - targetHealthCheck, - targets, - statusHistory + sites } from "@server/db"; import { hasActiveConnections } from "#dynamic/routers/ws"; import { eq, lt, isNull, and, or, ne, not, inArray } from "drizzle-orm"; diff --git a/server/routers/newt/registerNewt.ts b/server/routers/newt/registerNewt.ts index cc53e48df..440a62198 100644 --- a/server/routers/newt/registerNewt.ts +++ b/server/routers/newt/registerNewt.ts @@ -1,6 +1,6 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { db } from "@server/db"; +import { db, statusHistory } from "@server/db"; import { siteProvisioningKeys, siteProvisioningKeyOrg, @@ -223,6 +223,14 @@ export async function registerNewt( }) .returning(); + await trx.insert(statusHistory).values({ + entityType: "site", + entityId: newSite.siteId, + orgId: orgId, + status: "offline", + timestamp: Math.floor(Date.now() / 1000) + }); + newSiteId = newSite.siteId; // Grant admin role access to the new site diff --git a/server/routers/site/createSite.ts b/server/routers/site/createSite.ts index f9b26799e..0ac0de3d7 100644 --- a/server/routers/site/createSite.ts +++ b/server/routers/site/createSite.ts @@ -1,6 +1,6 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { clients, db, exitNodes } from "@server/db"; +import { clients, db, exitNodes, statusHistory } from "@server/db"; import { roles, userSites, sites, roleSites, Site, orgs } from "@server/db"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; @@ -321,12 +321,7 @@ export async function createSite( const existingSite = await db .select() .from(sites) - .where( - and( - eq(sites.niceId, niceId), - eq(sites.orgId, orgId) - ) - ) + .where(and(eq(sites.niceId, niceId), eq(sites.orgId, orgId))) .limit(1); if (existingSite.length > 0) { @@ -344,7 +339,8 @@ export async function createSite( if (type == "newt") { [newSite] = await trx .insert(sites) - .values({ // NOTE: NO SUBNET OR EXIT NODE ID PASSED IN HERE BECAUSE ITS NOW CHOSEN ON CONNECT + .values({ + // NOTE: NO SUBNET OR EXIT NODE ID PASSED IN HERE BECAUSE ITS NOW CHOSEN ON CONNECT orgId, name, niceId: updatedNiceId!, @@ -354,6 +350,14 @@ export async function createSite( status: "approved" }) .returning(); + + await trx.insert(statusHistory).values({ + entityType: "site", + entityId: newSite.siteId, + orgId: orgId, + status: "offline", + timestamp: Math.floor(Date.now() / 1000) + }); } else if (type == "wireguard") { // we are creating a site with an exit node (tunneled) if (!subnet) { diff --git a/server/routers/target/createTarget.ts b/server/routers/target/createTarget.ts index e37f12490..c58157e75 100644 --- a/server/routers/target/createTarget.ts +++ b/server/routers/target/createTarget.ts @@ -1,6 +1,11 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { db, TargetHealthCheck, targetHealthCheck } from "@server/db"; +import { + db, + statusHistory, + TargetHealthCheck, + targetHealthCheck +} from "@server/db"; import { newts, resources, sites, Target, targets } from "@server/db"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; @@ -14,6 +19,7 @@ import { eq } from "drizzle-orm"; import { pickPort } from "./helpers"; import { isTargetValid } from "@server/lib/validators"; import { OpenAPITags, registry } from "@server/openApi"; +import { fireHealthCheckHealthyAlert, fireHealthCheckUnhealthyAlert, fireHealthCheckUnknownAlert } from "#dynamic/lib/alerts"; const createTargetParamsSchema = z.strictObject({ resourceId: z.string().transform(Number).pipe(z.int().positive()) @@ -252,6 +258,36 @@ export async function createTarget( }) .returning(); + if (healthCheck[0].hcHealth === "unhealthy") { + await fireHealthCheckUnhealthyAlert( + healthCheck[0].orgId, + healthCheck[0].targetHealthCheckId, + healthCheck[0].name, + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet + ); + } else if (healthCheck[0].hcHealth === "unknown") { + // if the health is unknown, we want to fire an alert to notify users to enable health checks + await fireHealthCheckUnknownAlert( + healthCheck[0].orgId, + healthCheck[0].targetHealthCheckId, + healthCheck[0].name, + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet + ); + } else if (healthCheck[0].hcHealth === "healthy") { + await fireHealthCheckHealthyAlert( + healthCheck[0].orgId, + healthCheck[0].targetHealthCheckId, + healthCheck[0].name, + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet + ); + } + if (site.pubKey) { if (site.type == "wireguard") { await addPeer(site.exitNodeId!, { diff --git a/server/routers/target/handleHealthcheckStatusMessage.ts b/server/routers/target/handleHealthcheckStatusMessage.ts index c3bcb6d8e..0fe5caf7b 100644 --- a/server/routers/target/handleHealthcheckStatusMessage.ts +++ b/server/routers/target/handleHealthcheckStatusMessage.ts @@ -1,10 +1,6 @@ import { db, - targets, - resources, - sites, - targetHealthCheck, - statusHistory + targetHealthCheck } from "@server/db"; import { MessageHandler } from "@server/routers/ws"; import { Newt } from "@server/db"; @@ -142,6 +138,7 @@ export const handleHealthcheckStatusMessage: MessageHandler = async ( targetCheck.name ?? undefined, targetCheck.targetId, undefined, + true, trx ); } else if (healthStatus.status === "healthy") { @@ -151,6 +148,7 @@ export const handleHealthcheckStatusMessage: MessageHandler = async ( targetCheck.name ?? undefined, targetCheck.targetId, undefined, + true, trx ); } diff --git a/server/routers/target/updateTarget.ts b/server/routers/target/updateTarget.ts index 21f52566f..0766f87b5 100644 --- a/server/routers/target/updateTarget.ts +++ b/server/routers/target/updateTarget.ts @@ -10,10 +10,11 @@ import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { addPeer } from "../gerbil/peers"; import { addTargets } from "../newt/targets"; -import { fireHealthCheckUnknownAlert } from "#dynamic/lib/alerts"; +import { fireHealthCheckHealthyAlert, fireHealthCheckUnknownAlert } from "#dynamic/lib/alerts"; import { pickPort } from "./helpers"; import { isTargetValid } from "@server/lib/validators"; import { OpenAPITags, registry } from "@server/openApi"; +import { fireHealthCheckUnhealthyAlert } from "@server/lib/alerts"; const updateTargetParamsSchema = z.strictObject({ @@ -256,12 +257,33 @@ export async function updateTarget( .where(eq(targetHealthCheck.targetId, targetId)) .returning(); - if (isDisablingHc) { + if (updatedHc.hcHealth === "unhealthy" && existingHc.hcHealth !== "unhealthy") { + await fireHealthCheckUnhealthyAlert( + updatedHc.orgId, + updatedHc.targetHealthCheckId, + updatedHc.name || "", + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet + ); + } else if (updatedHc.hcHealth === "unknown" && existingHc.hcHealth !== "unknown") { + // if the health is unknown, we want to fire an alert to notify users to enable health checks await fireHealthCheckUnknownAlert( - resource.orgId, - existingHc.targetHealthCheckId, - existingHc.name, - updatedHc.targetId + updatedHc.orgId, + updatedHc.targetHealthCheckId, + updatedHc.name, + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet + ); + } else if (updatedHc.hcHealth === "healthy" && existingHc.hcHealth !== "healthy") { + await fireHealthCheckHealthyAlert( + updatedHc.orgId, + updatedHc.targetHealthCheckId, + updatedHc.name, + undefined, + undefined, + false // dont send the alert because we just want to create the alert, not notify users yet ); } diff --git a/src/app/[orgId]/settings/alerting/(list)/health-checks/page.tsx b/src/app/[orgId]/settings/alerting/(list)/health-checks/page.tsx index 5cbb9ea3d..f3cf0160f 100644 --- a/src/app/[orgId]/settings/alerting/(list)/health-checks/page.tsx +++ b/src/app/[orgId]/settings/alerting/(list)/health-checks/page.tsx @@ -151,6 +151,7 @@ export default async function AlertingHealthChecksPage( fullDomain: string | null; niceId: string; ssl: boolean; + wildcard: boolean; } | null = null; if (resourceIdParam) { try { @@ -165,7 +166,8 @@ export default async function AlertingHealthChecksPage( resourceId: r.resourceId, fullDomain: r.fullDomain, niceId: r.niceId, - ssl: r.ssl + ssl: r.ssl, + wildcard: r.wildcard }; } } catch { diff --git a/src/components/DomainPicker.tsx b/src/components/DomainPicker.tsx index 555bcb264..89cc4fed9 100644 --- a/src/components/DomainPicker.tsx +++ b/src/components/DomainPicker.tsx @@ -557,6 +557,7 @@ export default function DomainPicker({ )}

null; if (env.flags.disableEnterpriseFeatures) { return null; diff --git a/src/components/ProxyResourcesTable.tsx b/src/components/ProxyResourcesTable.tsx index 01cd17635..525b28809 100644 --- a/src/components/ProxyResourcesTable.tsx +++ b/src/components/ProxyResourcesTable.tsx @@ -63,13 +63,6 @@ import { useDebouncedCallback } from "use-debounce"; import z from "zod"; import { ColumnFilterButton } from "./ColumnFilterButton"; import { ControlledDataTable } from "./ui/controlled-data-table"; -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger -} from "@app/components/ui/tooltip"; -import type { StatusHistoryResponse } from "@server/lib/statusHistory"; import UptimeMiniBar from "./UptimeMiniBar"; export type TargetHealth = { @@ -466,7 +459,7 @@ export default function ProxyResourcesTable({ { id: "status", accessorKey: "status", - friendlyName: t("status"), + friendlyName: t("health"), header: () => ( ), From 4ff811c5bddf0b97f01d3f5c610930fb0d1167af Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 26 Apr 2026 17:38:24 -0700 Subject: [PATCH 039/131] Use http by default --- src/components/HealthCheckCredenza.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/HealthCheckCredenza.tsx b/src/components/HealthCheckCredenza.tsx index c5ab59064..7fa64ba80 100644 --- a/src/components/HealthCheckCredenza.tsx +++ b/src/components/HealthCheckCredenza.tsx @@ -119,7 +119,7 @@ const DEFAULT_VALUES = { name: "", hcEnabled: true, hcMode: "http", - hcScheme: "https", + hcScheme: "http", hcMethod: "GET", hcHostname: "", hcPort: "", @@ -271,7 +271,7 @@ export function HealthCheckCredenza(props: HealthCheckCredenzaProps) { name: initialValues.name, hcEnabled: initialValues.hcEnabled, hcMode: initialValues.hcMode ?? "http", - hcScheme: initialValues.hcScheme ?? "https", + hcScheme: initialValues.hcScheme ?? "http", hcMethod: initialValues.hcMethod ?? "GET", hcHostname: initialValues.hcHostname ?? "", hcPort: initialValues.hcPort From 8ca72a39da5b5ad41bef466828db443bcc07b9d4 Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 26 Apr 2026 17:55:26 -0700 Subject: [PATCH 040/131] Handle deleting targets --- server/routers/newt/targets.ts | 31 ++------ server/routers/resource/deleteResource.ts | 86 ++++++++++++----------- server/routers/target/deleteTarget.ts | 71 ++++++++++--------- 3 files changed, 92 insertions(+), 96 deletions(-) diff --git a/server/routers/newt/targets.ts b/server/routers/newt/targets.ts index 25b520854..5c717fa94 100644 --- a/server/routers/newt/targets.ts +++ b/server/routers/newt/targets.ts @@ -28,36 +28,18 @@ export async function addTargets( { incrementConfigVersion: true, compress: canCompress(version, "newt") } ); - // Create a map for quick lookup - const healthCheckMap = new Map(); - healthCheckData.forEach((hc) => { - if (hc.targetId !== null) { - healthCheckMap.set(hc.targetId, hc); - } - }); - - const healthCheckTargets = targets.map((target) => { - const hc = healthCheckMap.get(target.targetId); - - // If no health check data found, skip this target - if (!hc) { - logger.warn( - `No health check configuration found for target ${target.targetId}` - ); - return null; - } - + const healthCheckTargets = healthCheckData.map((hc) => { // Ensure all necessary fields are present const isTCP = hc.hcMode?.toLowerCase() === "tcp"; if (!hc.hcHostname || !hc.hcPort || !hc.hcInterval) { logger.debug( - `Skipping target ${target.targetId} due to missing health check fields` + `Skipping hc ${hc.targetHealthCheckId} due to missing health check fields` ); return null; } if (!isTCP && (!hc.hcPath || !hc.hcMethod)) { logger.debug( - `Skipping target ${target.targetId} due to missing HTTP health check fields` + `Skipping hc ${hc.targetHealthCheckId} due to missing HTTP health check fields` ); return null; } @@ -105,7 +87,7 @@ export async function addTargets( // Filter out any null values from health check targets const validHealthCheckTargets = healthCheckTargets.filter( - (target) => target !== null + (hc) => hc !== null ); await sendToClient( @@ -213,6 +195,7 @@ export async function removeStandaloneHealthCheck( export async function removeTargets( newtId: string, targets: Target[], + healthCheckData: TargetHealthCheck[], protocol: string, version?: string | null ) { @@ -234,8 +217,8 @@ export async function removeTargets( { incrementConfigVersion: true } ); - const healthCheckTargets = targets.map((target) => { - return target.targetId; + const healthCheckTargets = healthCheckData.map((hc) => { + return hc.targetHealthCheckId; }); await sendToClient( diff --git a/server/routers/resource/deleteResource.ts b/server/routers/resource/deleteResource.ts index e63301867..b29f7732d 100644 --- a/server/routers/resource/deleteResource.ts +++ b/server/routers/resource/deleteResource.ts @@ -1,8 +1,8 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { db } from "@server/db"; +import { db, targetHealthCheck } from "@server/db"; import { newts, resources, sites, targets } from "@server/db"; -import { eq } from "drizzle-orm"; +import { eq, inArray } from "drizzle-orm"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; @@ -52,6 +52,16 @@ export async function deleteResource( .from(targets) .where(eq(targets.resourceId, resourceId)); + const targetHealthChecksToBeRemoved = await db + .select() + .from(targetHealthCheck) + .where( + inArray( + targetHealthCheck.targetId, + targetsToBeRemoved.map((t) => t.targetId) + ) + ); + const [deletedResource] = await db .delete(resources) .where(eq(resources.resourceId, resourceId)) @@ -66,44 +76,40 @@ export async function deleteResource( ); } - // const [site] = await db - // .select() - // .from(sites) - // .where(eq(sites.siteId, deletedResource.siteId!)) - // .limit(1); - // - // if (!site) { - // return next( - // createHttpError( - // HttpCode.NOT_FOUND, - // `Site with ID ${deletedResource.siteId} not found` - // ) - // ); - // } - // - // if (site.pubKey) { - // if (site.type == "wireguard") { - // await addPeer(site.exitNodeId!, { - // publicKey: site.pubKey, - // allowedIps: await getAllowedIps(site.siteId) - // }); - // } else if (site.type == "newt") { - // // get the newt on the site by querying the newt table for siteId - // const [newt] = await db - // .select() - // .from(newts) - // .where(eq(newts.siteId, site.siteId)) - // .limit(1); - // - // removeTargets( - // newt.newtId, - // targetsToBeRemoved, - // deletedResource.protocol, - // deletedResource.proxyPort - // ); - // } - // } - // + const [site] = await db + .select() + .from(sites) + .where(eq(sites.siteId, targets.siteId)) + .limit(1); + + if (!site) { + return next( + createHttpError( + HttpCode.NOT_FOUND, + `Site with ID ${targets.siteId} not found` + ) + ); + } + + if (site.pubKey) { + if (site.type == "newt") { + // get the newt on the site by querying the newt table for siteId + const [newt] = await db + .select() + .from(newts) + .where(eq(newts.siteId, site.siteId)) + .limit(1); + + await removeTargets( + newt.newtId, + targetsToBeRemoved, + targetHealthChecksToBeRemoved, + deletedResource.protocol, + newt.version + ); + } + } + return response(res, { data: null, success: true, diff --git a/server/routers/target/deleteTarget.ts b/server/routers/target/deleteTarget.ts index 606d86351..754a047ff 100644 --- a/server/routers/target/deleteTarget.ts +++ b/server/routers/target/deleteTarget.ts @@ -12,6 +12,7 @@ import { fromError } from "zod-validation-error"; import { removeTargets } from "../newt/targets"; import { getAllowedIps } from "./helpers"; import { OpenAPITags, registry } from "@server/openApi"; +import { targetHealthCheck } from "@server/db/pg"; const deleteTargetSchema = z.strictObject({ targetId: z.string().transform(Number).pipe(z.int().positive()) @@ -46,6 +47,11 @@ export async function deleteTarget( const { targetId } = parsedParams.data; + const [deletedHealthCheck] = await db + .delete(targetHealthCheck) + .where(eq(targetHealthCheck.targetId, targetId)) + .returning(); + const [deletedTarget] = await db .delete(targets) .where(eq(targets.targetId, targetId)) @@ -74,38 +80,39 @@ export async function deleteTarget( ); } - // const [site] = await db - // .select() - // .from(sites) - // .where(eq(sites.siteId, resource.siteId!)) - // .limit(1); - // - // if (!site) { - // return next( - // createHttpError( - // HttpCode.NOT_FOUND, - // `Site with ID ${resource.siteId} not found` - // ) - // ); - // } - // - // if (site.pubKey) { - // if (site.type == "wireguard") { - // await addPeer(site.exitNodeId!, { - // publicKey: site.pubKey, - // allowedIps: await getAllowedIps(site.siteId) - // }); - // } else if (site.type == "newt") { - // // get the newt on the site by querying the newt table for siteId - // const [newt] = await db - // .select() - // .from(newts) - // .where(eq(newts.siteId, site.siteId)) - // .limit(1); - // - // removeTargets(newt.newtId, [deletedTarget], resource.protocol, resource.proxyPort); - // } - // } + const [site] = await db + .select() + .from(sites) + .where(eq(sites.siteId, targets.siteId)) + .limit(1); + + if (!site) { + return next( + createHttpError( + HttpCode.NOT_FOUND, + `Site with ID ${targets.siteId} not found` + ) + ); + } + + if (site.pubKey) { + if (site.type == "newt") { + // get the newt on the site by querying the newt table for siteId + const [newt] = await db + .select() + .from(newts) + .where(eq(newts.siteId, site.siteId)) + .limit(1); + + await removeTargets( + newt.newtId, + [deletedTarget], + [deletedHealthCheck], + resource.protocol, + newt.version + ); + } + } return response(res, { data: null, From 467cd70b72d5eeb9cc09144cd8218a756ddc1f5f Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 26 Apr 2026 20:26:03 -0700 Subject: [PATCH 041/131] Handle delete correctly --- server/routers/resource/deleteResource.ts | 75 +++++++++++------------ 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/server/routers/resource/deleteResource.ts b/server/routers/resource/deleteResource.ts index b29f7732d..6d885b01f 100644 --- a/server/routers/resource/deleteResource.ts +++ b/server/routers/resource/deleteResource.ts @@ -52,16 +52,6 @@ export async function deleteResource( .from(targets) .where(eq(targets.resourceId, resourceId)); - const targetHealthChecksToBeRemoved = await db - .select() - .from(targetHealthCheck) - .where( - inArray( - targetHealthCheck.targetId, - targetsToBeRemoved.map((t) => t.targetId) - ) - ); - const [deletedResource] = await db .delete(resources) .where(eq(resources.resourceId, resourceId)) @@ -76,38 +66,45 @@ export async function deleteResource( ); } - const [site] = await db - .select() - .from(sites) - .where(eq(sites.siteId, targets.siteId)) - .limit(1); + for (const target of targetsToBeRemoved) { + const [site] = await db + .select() + .from(sites) + .where(eq(sites.siteId, target.siteId)) + .limit(1); - if (!site) { - return next( - createHttpError( - HttpCode.NOT_FOUND, - `Site with ID ${targets.siteId} not found` - ) - ); - } - - if (site.pubKey) { - if (site.type == "newt") { - // get the newt on the site by querying the newt table for siteId - const [newt] = await db - .select() - .from(newts) - .where(eq(newts.siteId, site.siteId)) - .limit(1); - - await removeTargets( - newt.newtId, - targetsToBeRemoved, - targetHealthChecksToBeRemoved, - deletedResource.protocol, - newt.version + if (!site) { + return next( + createHttpError( + HttpCode.NOT_FOUND, + `Site with ID ${target.siteId} not found` + ) ); } + + if (site.pubKey) { + if (site.type == "newt") { + // get the newt on the site by querying the newt table for siteId + const [newt] = await db + .select() + .from(newts) + .where(eq(newts.siteId, site.siteId)) + .limit(1); + + const [healthCheck] = await db + .select() + .from(targetHealthCheck) + .where(eq(targetHealthCheck.targetId, target.targetId)); + + await removeTargets( + newt.newtId, + [target], + [healthCheck], + deletedResource.protocol, + newt.version + ); + } + } } return response(res, { From 7318c86cca7718686bc883e5b10ea53542255393 Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 26 Apr 2026 20:33:58 -0700 Subject: [PATCH 042/131] Fix display and query issues --- messages/en-US.json | 1 + server/routers/resource/listResources.ts | 33 ++++++++++++------------ src/components/HealthChecksTable.tsx | 2 +- src/components/ProxyResourcesTable.tsx | 12 ++++----- 4 files changed, 25 insertions(+), 23 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index d2b79bd35..9347235ef 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -1998,6 +1998,7 @@ "resourcesTableUnhealthy": "Unhealthy", "resourcesTableUnknown": "Unknown", "resourcesTableNotMonitored": "Not monitored", + "resourcesTableNoTargets": "No targets", "editInternalResourceDialogEditClientResource": "Edit Private Resource", "editInternalResourceDialogUpdateResourceProperties": "Update the resource configuration and access controls for {resourceName}", "editInternalResourceDialogResourceProperties": "Resource Properties", diff --git a/server/routers/resource/listResources.ts b/server/routers/resource/listResources.ts index 78ef30559..d0c30aaa2 100644 --- a/server/routers/resource/listResources.ts +++ b/server/routers/resource/listResources.ts @@ -110,9 +110,9 @@ const listResourcesSchema = z.object({ .catch(undefined) .openapi({ type: "string", - enum: ["no_targets", "healthy", "degraded", "offline", "unknown"], + enum: ["healthy", "degraded", "offline", "unknown"], description: - "Filter resources based on health status of their targets. `healthy` means all targets are healthy. `degraded` means at least one target is unhealthy, but not all are unhealthy. `offline` means all targets are unhealthy. `unknown` means all targets have unknown health status. `no_targets` means the resource has no targets." + "Filter resources based on health status of their targets. `healthy` means all targets are healthy. `degraded` means at least one target is unhealthy, but not all are unhealthy. `offline` means all targets are unhealthy. `unknown` means all targets have unknown health status." }), siteId: z.coerce.number().int().positive().optional().openapi({ type: "integer", @@ -374,21 +374,22 @@ export async function listResources( ); break; } - if (typeof healthStatus !== "undefined") { - conditions.push(eq(resources.health, healthStatus)); - } - if (siteId != null) { - const resourcesWithSite = db - .select({ resourceId: targets.resourceId }) - .from(targets) - .innerJoin(sites, eq(targets.siteId, sites.siteId)) - .where( - and(eq(sites.orgId, orgId), eq(sites.siteId, siteId)) - ); - conditions.push( - inArray(resources.resourceId, resourcesWithSite) + } + + if (typeof healthStatus !== "undefined") { + conditions.push(eq(resources.health, healthStatus)); + } + if (siteId != null) { + const resourcesWithSite = db + .select({ resourceId: targets.resourceId }) + .from(targets) + .innerJoin(sites, eq(targets.siteId, sites.siteId)) + .where( + and(eq(sites.orgId, orgId), eq(sites.siteId, siteId)) ); - } + conditions.push( + inArray(resources.resourceId, resourcesWithSite) + ); } const baseQuery = queryResourcesBase().where(and(...conditions)); diff --git a/src/components/HealthChecksTable.tsx b/src/components/HealthChecksTable.tsx index 47a1c8cd9..68976bf40 100644 --- a/src/components/HealthChecksTable.tsx +++ b/src/components/HealthChecksTable.tsx @@ -586,7 +586,7 @@ export default function HealthChecksTable({ handleToggleEnabled(r, v)} /> diff --git a/src/components/ProxyResourcesTable.tsx b/src/components/ProxyResourcesTable.tsx index 525b28809..384ad35c6 100644 --- a/src/components/ProxyResourcesTable.tsx +++ b/src/components/ProxyResourcesTable.tsx @@ -90,7 +90,7 @@ export type ResourceRow = { targetHost?: string; targetPort?: number; targets?: TargetHealth[]; - health?: "online" | "degraded" | "unhealthy" | "unknown"; + health?: "healthy" | "degraded" | "unhealthy" | "unknown"; sites: ResourceSiteRow[]; }; @@ -265,8 +265,8 @@ export default function ProxyResourcesTable({ > - {overallStatus === "online" && - t("resourcesTableHealthy")} + {overallStatus === "healthy" && + t("resourcesTableHealthy")} {overallStatus === "degraded" && t("resourcesTableDegraded")} {overallStatus === "unhealthy" && @@ -469,7 +469,7 @@ export default function ProxyResourcesTable({ label: t("resourcesTableDegraded") }, { - value: "unhealty", + value: "unhealthy", label: t("resourcesTableUnhealthy") }, { value: "unknown", label: t("resourcesTableUnknown") } @@ -488,7 +488,7 @@ export default function ProxyResourcesTable({ ), cell: ({ row }) => { const resourceRow = row.original; - return ; + return ; }, sortingFn: (rowA, rowB) => { const statusA = rowA.original.health; @@ -497,7 +497,7 @@ export default function ProxyResourcesTable({ if (!statusA) return 1; if (!statusB) return -1; const statusOrder = { - online: 3, + healthy: 3, degraded: 2, unhealthy: 1, unknown: 0 From 7563b37cd0e77da9aa83adacfd4c3a288af0862e Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 26 Apr 2026 21:25:14 -0700 Subject: [PATCH 043/131] Add missing health column --- server/routers/resource/listResources.ts | 2 ++ src/app/[orgId]/settings/resources/proxy/page.tsx | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/server/routers/resource/listResources.ts b/server/routers/resource/listResources.ts index d0c30aaa2..36a424831 100644 --- a/server/routers/resource/listResources.ts +++ b/server/routers/resource/listResources.ts @@ -139,6 +139,7 @@ export type ResourceWithTargets = { niceId: string; headerAuthId: number | null; wildcard: boolean; + health: string | null; targets: Array<{ targetId: number; ip: string; @@ -460,6 +461,7 @@ export async function listResources( enabled: row.enabled, domainId: row.domainId, headerAuthId: row.headerAuthId, + health: row.health ?? null, targets: [], sites: [] }; diff --git a/src/app/[orgId]/settings/resources/proxy/page.tsx b/src/app/[orgId]/settings/resources/proxy/page.tsx index ed76aafb7..5d727d905 100644 --- a/src/app/[orgId]/settings/resources/proxy/page.tsx +++ b/src/app/[orgId]/settings/resources/proxy/page.tsx @@ -129,7 +129,8 @@ export default async function ProxyResourcesPage( healthStatus: target.healthStatus, siteName: target.siteName })), - sites: resource.sites ?? [] + sites: resource.sites ?? [], + health: (resource.health as ResourceRow["health"]) ?? undefined }; }); return ( From 17631599a2d601cc7a551596f4892c917e71a970 Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 26 Apr 2026 21:25:53 -0700 Subject: [PATCH 044/131] Remove delay --- server/routers/resource/listResources.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/routers/resource/listResources.ts b/server/routers/resource/listResources.ts index 36a424831..1ca0ef918 100644 --- a/server/routers/resource/listResources.ts +++ b/server/routers/resource/listResources.ts @@ -268,8 +268,6 @@ export async function listResources( ); } - await new Promise((resolve) => setTimeout(resolve, 3 * 1000)); - const orgId = parsedParams.data.orgId || req.userOrg?.orgId || From 1cdb261f7e2406c41cb1bc757c2eea4bfcbc6a32 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Mon, 27 Apr 2026 12:31:31 -0700 Subject: [PATCH 045/131] add loading indicator to resources --- src/components/SiteResourcesOverview.tsx | 45 +++++++++++++++++++++--- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/src/components/SiteResourcesOverview.tsx b/src/components/SiteResourcesOverview.tsx index b547fffbc..080074d87 100644 --- a/src/components/SiteResourcesOverview.tsx +++ b/src/components/SiteResourcesOverview.tsx @@ -12,6 +12,7 @@ import type { ListResourcesResponse } from "@server/routers/resource"; import type ResponseT from "@server/types/Response"; import { useQuery } from "@tanstack/react-query"; import { isAxiosError } from "axios"; +import { Loader2 } from "lucide-react"; import { useTranslations } from "next-intl"; import Link from "next/link"; import { useParams } from "next/navigation"; @@ -176,6 +177,8 @@ type OverviewColumnProps = { emptyLabel: string; isForbidden: boolean; isFetching: boolean; + /** When there are no rows and the first fetch (no SSR initial data) is in flight. */ + isLoading: boolean; rows: OverviewRow[]; canShowMore: boolean; onShowMore: () => void; @@ -189,6 +192,7 @@ function OverviewColumn({ emptyLabel, isForbidden, isFetching, + isLoading, rows, canShowMore, onShowMore @@ -231,10 +235,23 @@ function OverviewColumn({
{header} {rows.length === 0 ? ( -
-

- {emptyLabel} -

+
+ {isLoading ? ( +
+ + {t("loading")} +
+ ) : ( +

+ {emptyLabel} +

+ )}
) : ( <> @@ -390,7 +407,14 @@ export default function SiteResourcesOverview({ initialPrivateForbidden || (privateQuery.isError && isForbidden(privateQuery.error)); + const waitingOnPublicList = + enabled && !publicForbidden && publicQuery.isPending; + const waitingOnPrivateList = + enabled && !privateForbidden && privateQuery.isPending; + const showEmptyPlaceholder = + !waitingOnPublicList && + !waitingOnPrivateList && !publicForbidden && !privateForbidden && publicList.length === 0 && @@ -431,6 +455,17 @@ export default function SiteResourcesOverview({ ); } + const publicEmptyLoading = + enabled && + !publicForbidden && + publicRows.length === 0 && + publicQuery.isPending; + const privateEmptyLoading = + enabled && + !privateForbidden && + privateRows.length === 0 && + privateQuery.isPending; + const publicColumn = ( setPublicPageSize((n) => n + LOAD_MORE_INCREMENT)} @@ -457,6 +493,7 @@ export default function SiteResourcesOverview({ emptyLabel={t("siteResourcesEmptyPrivate")} isForbidden={privateForbidden} isFetching={privateQuery.isFetching} + isLoading={privateEmptyLoading} rows={privateRows} canShowMore={privateList.length < privateTotal} onShowMore={() => From d1f7a9c6dfb302e5363b2d49655b712646aacd3d Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 11:37:53 -0700 Subject: [PATCH 046/131] Add health to the resource --- src/components/CertificateStatus.tsx | 4 ++- src/components/ResourceInfoBox.tsx | 38 +++++++++++++++++++++++----- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/components/CertificateStatus.tsx b/src/components/CertificateStatus.tsx index daf373783..8271ccb60 100644 --- a/src/components/CertificateStatus.tsx +++ b/src/components/CertificateStatus.tsx @@ -12,6 +12,7 @@ type CertificateStatusProps = { autoFetch?: boolean; showLabel?: boolean; className?: string; + disableRestartButton?: boolean; onRefresh?: () => void; polling?: boolean; pollingInterval?: number; @@ -23,6 +24,7 @@ export default function CertificateStatus({ fullDomain, autoFetch = true, showLabel = true, + disableRestartButton = false, className = "", onRefresh, polling = false, @@ -153,7 +155,7 @@ export default function CertificateStatus({ variant="ghost" className="p-0 w-3 h-auto align-middle" onClick={handleRefresh} - disabled={refreshing} + disabled={refreshing || disableRestartButton} title={t("restartCertificate", { defaultValue: "Restart Certificate" })} diff --git a/src/components/ResourceInfoBox.tsx b/src/components/ResourceInfoBox.tsx index ad3cb5f34..4ceadb4f7 100644 --- a/src/components/ResourceInfoBox.tsx +++ b/src/components/ResourceInfoBox.tsx @@ -1,7 +1,7 @@ "use client"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; -import { ShieldCheck, ShieldOff, Eye, EyeOff } from "lucide-react"; +import { ShieldCheck, ShieldOff, Eye, EyeOff, CheckCircle2, XCircle, Clock } from "lucide-react"; import { useResourceContext } from "@app/hooks/useResourceContext"; import CopyToClipboard from "@app/components/CopyToClipboard"; import { @@ -18,8 +18,7 @@ import { useEnvContext } from "@app/hooks/useEnvContext"; type ResourceInfoBoxType = {}; export default function ResourceInfoBox({}: ResourceInfoBoxType) { - const { resource, authInfo, updateResource } = useResourceContext(); - const { env } = useEnvContext(); + const { resource, authInfo } = useResourceContext(); const t = useTranslations(); @@ -29,9 +28,7 @@ export default function ResourceInfoBox({}: ResourceInfoBoxType) { {/* 4 cols because of the certs */} - + {t("identifier")} @@ -155,6 +152,35 @@ export default function ResourceInfoBox({}: ResourceInfoBoxType) { )} + + {t("health")} + + {resource.health === "healthy" && ( +
+ + {t("resourcesTableHealthy")} +
+ )} + {resource.health === "degraded" && ( +
+ + {t("resourcesTableDegraded")} +
+ )} + {resource.health === "unhealthy" && ( +
+ + {t("resourcesTableUnhealthy")} +
+ )} + {(!resource.health || resource.health === "unknown") && ( +
+ + {t("resourcesTableUnknown")} +
+ )} +
+
{t("visibility")} From 512ba2150ba3262be8c0327d11cf52f3e2957be2 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 11:50:57 -0700 Subject: [PATCH 047/131] Fix sanitizing the domain causing problems --- .../[orgId]/settings/resources/proxy/[niceId]/general/page.tsx | 3 ++- src/app/[orgId]/settings/resources/proxy/create/page.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/[orgId]/settings/resources/proxy/[niceId]/general/page.tsx b/src/app/[orgId]/settings/resources/proxy/[niceId]/general/page.tsx index e1c5b6ac2..62a6b9fed 100644 --- a/src/app/[orgId]/settings/resources/proxy/[niceId]/general/page.tsx +++ b/src/app/[orgId]/settings/resources/proxy/[niceId]/general/page.tsx @@ -29,6 +29,7 @@ import { Label } from "@app/components/ui/label"; import { useEnvContext } from "@app/hooks/useEnvContext"; import { toast } from "@app/hooks/useToast"; import { createApiClient, formatAxiosError } from "@app/lib/api"; +import { finalizeSubdomainSanitize } from "@app/lib/subdomain-utils"; import { UpdateResourceResponse } from "@server/routers/resource"; import { AxiosResponse } from "axios"; import { AlertCircle } from "lucide-react"; @@ -506,7 +507,7 @@ export default function GeneralForm() { name: data.name, niceId: data.niceId, subdomain: data.subdomain - ? toASCII(data.subdomain) + ? toASCII(finalizeSubdomainSanitize(data.subdomain, true)) : undefined, domainId: data.domainId, proxyPort: data.proxyPort diff --git a/src/app/[orgId]/settings/resources/proxy/create/page.tsx b/src/app/[orgId]/settings/resources/proxy/create/page.tsx index a2cf36de6..98151cc36 100644 --- a/src/app/[orgId]/settings/resources/proxy/create/page.tsx +++ b/src/app/[orgId]/settings/resources/proxy/create/page.tsx @@ -488,7 +488,7 @@ export default function Page() { const httpData = httpForm.getValues(); sanitizedSubdomain = httpData.subdomain - ? finalizeSubdomainSanitize(httpData.subdomain) + ? finalizeSubdomainSanitize(httpData.subdomain, true) : undefined; Object.assign(payload, { From 61aaa5a8322ad9a93197151633703cabba861b10 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 13:46:01 -0700 Subject: [PATCH 048/131] Wrap in transactions --- server/routers/newt/targets.ts | 45 +-- server/routers/resource/deleteResource.ts | 3 +- server/routers/target/createTarget.ts | 276 +++++++++--------- server/routers/target/deleteTarget.ts | 28 +- server/routers/target/updateTarget.ts | 232 ++++++++------- .../resources/proxy/[niceId]/proxy/page.tsx | 13 + .../settings/resources/proxy/create/page.tsx | 12 + 7 files changed, 337 insertions(+), 272 deletions(-) diff --git a/server/routers/newt/targets.ts b/server/routers/newt/targets.ts index 5c717fa94..ac25fb27d 100644 --- a/server/routers/newt/targets.ts +++ b/server/routers/newt/targets.ts @@ -17,16 +17,21 @@ export async function addTargets( }:${target.port}`; }); - await sendToClient( - newtId, - { - type: `newt/${protocol}/add`, - data: { - targets: payloadTargets + if (payloadTargets.length > 0) { + await sendToClient( + newtId, + { + type: `newt/${protocol}/add`, + data: { + targets: payloadTargets + } + }, + { + incrementConfigVersion: true, + compress: canCompress(version, "newt") } - }, - { incrementConfigVersion: true, compress: canCompress(version, "newt") } - ); + ); + } const healthCheckTargets = healthCheckData.map((hc) => { // Ensure all necessary fields are present @@ -206,16 +211,18 @@ export async function removeTargets( }:${target.port}`; }); - await sendToClient( - newtId, - { - type: `newt/${protocol}/remove`, - data: { - targets: payloadTargets - } - }, - { incrementConfigVersion: true } - ); + if (payloadTargets.length > 0) { + await sendToClient( + newtId, + { + type: `newt/${protocol}/remove`, + data: { + targets: payloadTargets + } + }, + { incrementConfigVersion: true } + ); + } const healthCheckTargets = healthCheckData.map((hc) => { return hc.targetHealthCheckId; diff --git a/server/routers/resource/deleteResource.ts b/server/routers/resource/deleteResource.ts index 6d885b01f..a578c3841 100644 --- a/server/routers/resource/deleteResource.ts +++ b/server/routers/resource/deleteResource.ts @@ -98,7 +98,8 @@ export async function deleteResource( await removeTargets( newt.newtId, - [target], + // [target], + [], // deleting the target from newt causes issues because we cant unbind the port. this needs to be fixed in newt before we can do this [healthCheck], deletedResource.protocol, newt.version diff --git a/server/routers/target/createTarget.ts b/server/routers/target/createTarget.ts index c58157e75..a44a1a1fb 100644 --- a/server/routers/target/createTarget.ts +++ b/server/routers/target/createTarget.ts @@ -19,7 +19,11 @@ import { eq } from "drizzle-orm"; import { pickPort } from "./helpers"; import { isTargetValid } from "@server/lib/validators"; import { OpenAPITags, registry } from "@server/openApi"; -import { fireHealthCheckHealthyAlert, fireHealthCheckUnhealthyAlert, fireHealthCheckUnknownAlert } from "#dynamic/lib/alerts"; +import { + fireHealthCheckHealthyAlert, + fireHealthCheckUnhealthyAlert, + fireHealthCheckUnknownAlert +} from "#dynamic/lib/alerts"; const createTargetParamsSchema = z.strictObject({ resourceId: z.string().transform(Number).pipe(z.int().positive()) @@ -142,151 +146,155 @@ export async function createTarget( ); } - const existingTargets = await db - .select() - .from(targets) - .where(eq(targets.resourceId, resourceId)); - - const existingTarget = existingTargets.find( - (target) => - target.ip === targetData.ip && - target.port === targetData.port && - target.method === targetData.method && - target.siteId === targetData.siteId - ); - - if (existingTarget) { - // log a warning - logger.warn( - `Target with IP ${targetData.ip}, port ${targetData.port}, method ${targetData.method} already exists for resource ID ${resourceId}` - ); - } - let newTarget: Target[] = []; - let healthCheck: TargetHealthCheck[] = []; let targetIps: string[] = []; - if (site.type == "local") { - newTarget = await db - .insert(targets) - .values({ - resourceId, - ...targetData, - priority: targetData.priority || 100 - }) - .returning(); - } else { - // make sure the target is within the site subnet - if ( - site.type == "wireguard" && - !isIpInCidr(targetData.ip, site.subnet!) - ) { - return next( - createHttpError( - HttpCode.BAD_REQUEST, - `Target IP is not within the site subnet` - ) + let healthCheck: TargetHealthCheck[] = []; + await db.transaction(async (trx) => { + const existingTargets = await trx + .select() + .from(targets) + .where(eq(targets.resourceId, resourceId)); + + const existingTarget = existingTargets.find( + (target) => + target.ip === targetData.ip && + target.port === targetData.port && + target.method === targetData.method && + target.siteId === targetData.siteId + ); + + if (existingTarget) { + // log a warning + logger.warn( + `Target with IP ${targetData.ip}, port ${targetData.port}, method ${targetData.method} already exists for resource ID ${resourceId}` ); } - const { internalPort, targetIps: newTargetIps } = await pickPort( - site.siteId!, - db - ); + if (site.type == "local") { + newTarget = await trx + .insert(targets) + .values({ + resourceId, + ...targetData, + priority: targetData.priority || 100 + }) + .returning(); + } else { + // make sure the target is within the site subnet + if ( + site.type == "wireguard" && + !isIpInCidr(targetData.ip, site.subnet!) + ) { + return next( + createHttpError( + HttpCode.BAD_REQUEST, + `Target IP is not within the site subnet` + ) + ); + } - if (!internalPort) { - return next( - createHttpError( - HttpCode.BAD_REQUEST, - `No available internal port` - ) - ); + const { internalPort, targetIps: newTargetIps } = + await pickPort(site.siteId!, trx); + + if (!internalPort) { + return next( + createHttpError( + HttpCode.BAD_REQUEST, + `No available internal port` + ) + ); + } + + newTarget = await trx + .insert(targets) + .values({ + resourceId, + siteId: site.siteId, + ip: targetData.ip, + method: targetData.method, + port: targetData.port, + internalPort, + enabled: targetData.enabled, + path: targetData.path, + pathMatchType: targetData.pathMatchType, + rewritePath: targetData.rewritePath, + rewritePathType: targetData.rewritePathType, + priority: targetData.priority || 100 + }) + .returning(); + + // add the new target to the targetIps array + newTargetIps.push(`${targetData.ip}/32`); + + targetIps = newTargetIps; } - newTarget = await db - .insert(targets) + let hcHeaders = null; + if (targetData.hcHeaders) { + hcHeaders = JSON.stringify(targetData.hcHeaders); + } + + healthCheck = await trx + .insert(targetHealthCheck) .values({ - resourceId, - siteId: site.siteId, - ip: targetData.ip, - method: targetData.method, - port: targetData.port, - internalPort, - enabled: targetData.enabled, - path: targetData.path, - pathMatchType: targetData.pathMatchType, - rewritePath: targetData.rewritePath, - rewritePathType: targetData.rewritePathType, - priority: targetData.priority || 100 + orgId: resource.orgId, + targetId: newTarget[0].targetId, + siteId: targetData.siteId, + name: `Resource ${resource.name} - ${targetData.ip}:${targetData.port}`, + hcEnabled: targetData.hcEnabled ?? false, + hcPath: targetData.hcPath ?? null, + hcScheme: targetData.hcScheme ?? null, + hcMode: targetData.hcMode ?? null, + hcHostname: targetData.hcHostname ?? null, + hcPort: targetData.hcPort ?? null, + hcInterval: targetData.hcInterval ?? null, + hcUnhealthyInterval: targetData.hcUnhealthyInterval ?? null, + hcTimeout: targetData.hcTimeout ?? null, + hcHeaders: hcHeaders, + hcFollowRedirects: targetData.hcFollowRedirects ?? null, + hcMethod: targetData.hcMethod ?? null, + hcStatus: targetData.hcStatus ?? null, + hcHealth: targetData.hcEnabled ? "unhealthy" : "unknown", + hcTlsServerName: targetData.hcTlsServerName ?? null, + hcHealthyThreshold: targetData.hcHealthyThreshold ?? null, + hcUnhealthyThreshold: + targetData.hcUnhealthyThreshold ?? null }) .returning(); - // add the new target to the targetIps array - newTargetIps.push(`${targetData.ip}/32`); - - targetIps = newTargetIps; - } - - let hcHeaders = null; - if (targetData.hcHeaders) { - hcHeaders = JSON.stringify(targetData.hcHeaders); - } - - healthCheck = await db - .insert(targetHealthCheck) - .values({ - orgId: resource.orgId, - targetId: newTarget[0].targetId, - siteId: targetData.siteId, - name: `Resource ${resource.name} - ${targetData.ip}:${targetData.port}`, - hcEnabled: targetData.hcEnabled ?? false, - hcPath: targetData.hcPath ?? null, - hcScheme: targetData.hcScheme ?? null, - hcMode: targetData.hcMode ?? null, - hcHostname: targetData.hcHostname ?? null, - hcPort: targetData.hcPort ?? null, - hcInterval: targetData.hcInterval ?? null, - hcUnhealthyInterval: targetData.hcUnhealthyInterval ?? null, - hcTimeout: targetData.hcTimeout ?? null, - hcHeaders: hcHeaders, - hcFollowRedirects: targetData.hcFollowRedirects ?? null, - hcMethod: targetData.hcMethod ?? null, - hcStatus: targetData.hcStatus ?? null, - hcHealth: targetData.hcEnabled ? "unhealthy" : "unknown", - hcTlsServerName: targetData.hcTlsServerName ?? null, - hcHealthyThreshold: targetData.hcHealthyThreshold ?? null, - hcUnhealthyThreshold: targetData.hcUnhealthyThreshold ?? null - }) - .returning(); - - if (healthCheck[0].hcHealth === "unhealthy") { - await fireHealthCheckUnhealthyAlert( - healthCheck[0].orgId, - healthCheck[0].targetHealthCheckId, - healthCheck[0].name, - undefined, - undefined, - false // dont send the alert because we just want to create the alert, not notify users yet - ); - } else if (healthCheck[0].hcHealth === "unknown") { - // if the health is unknown, we want to fire an alert to notify users to enable health checks - await fireHealthCheckUnknownAlert( - healthCheck[0].orgId, - healthCheck[0].targetHealthCheckId, - healthCheck[0].name, - undefined, - undefined, - false // dont send the alert because we just want to create the alert, not notify users yet - ); - } else if (healthCheck[0].hcHealth === "healthy") { - await fireHealthCheckHealthyAlert( - healthCheck[0].orgId, - healthCheck[0].targetHealthCheckId, - healthCheck[0].name, - undefined, - undefined, - false // dont send the alert because we just want to create the alert, not notify users yet - ); - } + if (healthCheck[0].hcHealth === "unhealthy") { + await fireHealthCheckUnhealthyAlert( + healthCheck[0].orgId, + healthCheck[0].targetHealthCheckId, + healthCheck[0].name, + undefined, + undefined, + false, // dont send the alert because we just want to create the alert, not notify users yet + trx + ); + } else if (healthCheck[0].hcHealth === "unknown") { + // if the health is unknown, we want to fire an alert to notify users to enable health checks + await fireHealthCheckUnknownAlert( + healthCheck[0].orgId, + healthCheck[0].targetHealthCheckId, + healthCheck[0].name, + undefined, + undefined, + false, // dont send the alert because we just want to create the alert, not notify users yet + trx + ); + } else if (healthCheck[0].hcHealth === "healthy") { + await fireHealthCheckHealthyAlert( + healthCheck[0].orgId, + healthCheck[0].targetHealthCheckId, + healthCheck[0].name, + undefined, + undefined, + false, // dont send the alert because we just want to create the alert, not notify users yet + trx + ); + } + }); if (site.pubKey) { if (site.type == "wireguard") { diff --git a/server/routers/target/deleteTarget.ts b/server/routers/target/deleteTarget.ts index 754a047ff..b6cea7139 100644 --- a/server/routers/target/deleteTarget.ts +++ b/server/routers/target/deleteTarget.ts @@ -2,15 +2,13 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; import { db } from "@server/db"; import { newts, resources, sites, targets } from "@server/db"; -import { eq } from "drizzle-orm"; +import { eq, ne, and } from "drizzle-orm"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; import logger from "@server/logger"; -import { addPeer } from "../gerbil/peers"; import { fromError } from "zod-validation-error"; import { removeTargets } from "../newt/targets"; -import { getAllowedIps } from "./helpers"; import { OpenAPITags, registry } from "@server/openApi"; import { targetHealthCheck } from "@server/db/pg"; @@ -80,10 +78,29 @@ export async function deleteTarget( ); } + // check if there are other targets on the resource + const otherTargets = await db + .select() + .from(targets) + .where( + and( + eq(targets.resourceId, resource.resourceId), + ne(targets.targetId, targetId) + ) + ); + + if (otherTargets.length == 0) { + // set the resource status + await db + .update(resources) + .set({ health: "unknown" }) + .where(eq(resources.resourceId, resource.resourceId)); + } + const [site] = await db .select() .from(sites) - .where(eq(sites.siteId, targets.siteId)) + .where(eq(sites.siteId, deletedTarget.siteId)) .limit(1); if (!site) { @@ -106,7 +123,8 @@ export async function deleteTarget( await removeTargets( newt.newtId, - [deletedTarget], + // [deletedTarget], + [], // deleting the target from newt causes issues because we cant unbind the port. this needs to be fixed in newt before we can do this [deletedHealthCheck], resource.protocol, newt.version diff --git a/server/routers/target/updateTarget.ts b/server/routers/target/updateTarget.ts index 0766f87b5..99f1acdeb 100644 --- a/server/routers/target/updateTarget.ts +++ b/server/routers/target/updateTarget.ts @@ -10,12 +10,10 @@ import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { addPeer } from "../gerbil/peers"; import { addTargets } from "../newt/targets"; -import { fireHealthCheckHealthyAlert, fireHealthCheckUnknownAlert } from "#dynamic/lib/alerts"; +import { fireHealthCheckHealthyAlert, fireHealthCheckUnknownAlert, fireHealthCheckUnhealthyAlert } from "#dynamic/lib/alerts"; import { pickPort } from "./helpers"; import { isTargetValid } from "@server/lib/validators"; import { OpenAPITags, registry } from "@server/openApi"; -import { fireHealthCheckUnhealthyAlert } from "@server/lib/alerts"; - const updateTargetParamsSchema = z.strictObject({ targetId: z.string().transform(Number).pipe(z.int().positive()) @@ -168,124 +166,131 @@ export async function updateTarget( const pathMatchTypeRemoved = parsedBody.data.pathMatchType === null; - const [updatedTarget] = await db - .update(targets) - .set({ - siteId: parsedBody.data.siteId, - ip: parsedBody.data.ip, - method: parsedBody.data.method, - port: parsedBody.data.port, - internalPort, - enabled: parsedBody.data.enabled, - path: parsedBody.data.path, - pathMatchType: parsedBody.data.pathMatchType, - priority: parsedBody.data.priority, - rewritePath: pathMatchTypeRemoved ? null : parsedBody.data.rewritePath, - rewritePathType: pathMatchTypeRemoved ? null : parsedBody.data.rewritePathType - }) - .where(eq(targets.targetId, targetId)) - .returning(); + let updatedTarget: any; + let updatedHc: any; + await db.transaction(async (trx) => { + [updatedTarget] = await trx + .update(targets) + .set({ + siteId: parsedBody.data.siteId, + ip: parsedBody.data.ip, + method: parsedBody.data.method, + port: parsedBody.data.port, + internalPort, + enabled: parsedBody.data.enabled, + path: parsedBody.data.path, + pathMatchType: parsedBody.data.pathMatchType, + priority: parsedBody.data.priority, + rewritePath: pathMatchTypeRemoved ? null : parsedBody.data.rewritePath, + rewritePathType: pathMatchTypeRemoved ? null : parsedBody.data.rewritePathType + }) + .where(eq(targets.targetId, targetId)) + .returning(); - const [existingHc] = await db - .select() - .from(targetHealthCheck) - .where(eq(targetHealthCheck.targetId, targetId)) - .limit(1); + const [existingHc] = await trx + .select() + .from(targetHealthCheck) + .where(eq(targetHealthCheck.targetId, targetId)) + .limit(1); - if (!existingHc) { - return next( - createHttpError( - HttpCode.NOT_FOUND, - `Health check for target with ID ${targetId} not found` - ) - ); - } + if (!existingHc) { + return next( + createHttpError( + HttpCode.NOT_FOUND, + `Health check for target with ID ${targetId} not found` + ) + ); + } - let hcHeaders = null; - if (parsedBody.data.hcHeaders) { - hcHeaders = JSON.stringify(parsedBody.data.hcHeaders); - } + let hcHeaders = null; + if (parsedBody.data.hcHeaders) { + hcHeaders = JSON.stringify(parsedBody.data.hcHeaders); + } - // When health check is disabled, reset hcHealth to "unknown" - // to prevent previously unhealthy targets from being excluded. - // Also when the site is not a newt, set hcHealth to "unknown". - // If hcEnabled is being turned on (was false, now true), set to "unhealthy" - // so the target must pass a health check before being considered healthy. - const hcEnabledTurnedOn = - parsedBody.data.hcEnabled === true && existingHc.hcEnabled === false; + // When health check is disabled, reset hcHealth to "unknown" + // to prevent previously unhealthy targets from being excluded. + // Also when the site is not a newt, set hcHealth to "unknown". + // If hcEnabled is being turned on (was false, now true), set to "unhealthy" + // so the target must pass a health check before being considered healthy. + const hcEnabledTurnedOn = + parsedBody.data.hcEnabled === true && existingHc.hcEnabled === false; - let hcHealthValue: "unknown" | "healthy" | "unhealthy" | undefined; - if ( - parsedBody.data.hcEnabled === false || - parsedBody.data.hcEnabled === null || - site.type !== "newt" - ) { - hcHealthValue = "unknown"; - } else if (hcEnabledTurnedOn) { - hcHealthValue = "unhealthy"; - } else { - hcHealthValue = undefined; - } + let hcHealthValue: "unknown" | "healthy" | "unhealthy" | undefined; + if ( + parsedBody.data.hcEnabled === false || + parsedBody.data.hcEnabled === null || + site.type !== "newt" + ) { + hcHealthValue = "unknown"; + } else if (hcEnabledTurnedOn) { + hcHealthValue = "unhealthy"; + } else { + hcHealthValue = undefined; + } - const isDisablingHc = - (parsedBody.data.hcEnabled === false || - parsedBody.data.hcEnabled === null) && - existingHc.hcEnabled === true; + const isDisablingHc = + (parsedBody.data.hcEnabled === false || + parsedBody.data.hcEnabled === null) && + existingHc.hcEnabled === true; - const [updatedHc] = await db - .update(targetHealthCheck) - .set({ - siteId: parsedBody.data.siteId, - hcEnabled: parsedBody.data.hcEnabled || false, - hcPath: parsedBody.data.hcPath, - hcScheme: parsedBody.data.hcScheme, - hcMode: parsedBody.data.hcMode, - hcHostname: parsedBody.data.hcHostname, - hcPort: parsedBody.data.hcPort, - hcInterval: parsedBody.data.hcInterval, - hcUnhealthyInterval: parsedBody.data.hcUnhealthyInterval, - hcTimeout: parsedBody.data.hcTimeout, - hcHeaders: hcHeaders, - hcFollowRedirects: parsedBody.data.hcFollowRedirects, - hcMethod: parsedBody.data.hcMethod, - hcStatus: parsedBody.data.hcStatus, - hcTlsServerName: parsedBody.data.hcTlsServerName, - hcHealthyThreshold: parsedBody.data.hcHealthyThreshold, - hcUnhealthyThreshold: parsedBody.data.hcUnhealthyThreshold, - hcHealth: hcHealthValue - }) - .where(eq(targetHealthCheck.targetId, targetId)) - .returning(); + const [updatedHc] = await trx + .update(targetHealthCheck) + .set({ + siteId: parsedBody.data.siteId, + hcEnabled: parsedBody.data.hcEnabled || false, + hcPath: parsedBody.data.hcPath, + hcScheme: parsedBody.data.hcScheme, + hcMode: parsedBody.data.hcMode, + hcHostname: parsedBody.data.hcHostname, + hcPort: parsedBody.data.hcPort, + hcInterval: parsedBody.data.hcInterval, + hcUnhealthyInterval: parsedBody.data.hcUnhealthyInterval, + hcTimeout: parsedBody.data.hcTimeout, + hcHeaders: hcHeaders, + hcFollowRedirects: parsedBody.data.hcFollowRedirects, + hcMethod: parsedBody.data.hcMethod, + hcStatus: parsedBody.data.hcStatus, + hcTlsServerName: parsedBody.data.hcTlsServerName, + hcHealthyThreshold: parsedBody.data.hcHealthyThreshold, + hcUnhealthyThreshold: parsedBody.data.hcUnhealthyThreshold, + hcHealth: hcHealthValue + }) + .where(eq(targetHealthCheck.targetId, targetId)) + .returning(); - if (updatedHc.hcHealth === "unhealthy" && existingHc.hcHealth !== "unhealthy") { - await fireHealthCheckUnhealthyAlert( - updatedHc.orgId, - updatedHc.targetHealthCheckId, - updatedHc.name || "", - undefined, - undefined, - false // dont send the alert because we just want to create the alert, not notify users yet - ); - } else if (updatedHc.hcHealth === "unknown" && existingHc.hcHealth !== "unknown") { - // if the health is unknown, we want to fire an alert to notify users to enable health checks - await fireHealthCheckUnknownAlert( - updatedHc.orgId, - updatedHc.targetHealthCheckId, - updatedHc.name, - undefined, - undefined, - false // dont send the alert because we just want to create the alert, not notify users yet - ); - } else if (updatedHc.hcHealth === "healthy" && existingHc.hcHealth !== "healthy") { - await fireHealthCheckHealthyAlert( - updatedHc.orgId, - updatedHc.targetHealthCheckId, - updatedHc.name, - undefined, - undefined, - false // dont send the alert because we just want to create the alert, not notify users yet - ); - } + if (updatedHc.hcHealth === "unhealthy" && existingHc.hcHealth !== "unhealthy") { + await fireHealthCheckUnhealthyAlert( + updatedHc.orgId, + updatedHc.targetHealthCheckId, + updatedHc.name || "", + undefined, + undefined, + false, // dont send the alert because we just want to create the alert, not notify users yet + trx + ); + } else if (updatedHc.hcHealth === "unknown" && existingHc.hcHealth !== "unknown") { + // if the health is unknown, we want to fire an alert to notify users to enable health checks + await fireHealthCheckUnknownAlert( + updatedHc.orgId, + updatedHc.targetHealthCheckId, + updatedHc.name, + undefined, + undefined, + false, // dont send the alert because we just want to create the alert, not notify users yet + trx + ); + } else if (updatedHc.hcHealth === "healthy" && existingHc.hcHealth !== "healthy") { + await fireHealthCheckHealthyAlert( + updatedHc.orgId, + updatedHc.targetHealthCheckId, + updatedHc.name, + undefined, + undefined, + false, // dont send the alert because we just want to create the alert, not notify users yet + trx + ); + } + }); if (site.pubKey) { if (site.type == "wireguard") { @@ -310,6 +315,7 @@ export async function updateTarget( ); } } + return response(res, { data: { ...updatedTarget, diff --git a/src/app/[orgId]/settings/resources/proxy/[niceId]/proxy/page.tsx b/src/app/[orgId]/settings/resources/proxy/[niceId]/proxy/page.tsx index 03426ef1f..0846fc896 100644 --- a/src/app/[orgId]/settings/resources/proxy/[niceId]/proxy/page.tsx +++ b/src/app/[orgId]/settings/resources/proxy/[niceId]/proxy/page.tsx @@ -62,6 +62,7 @@ import { formatAxiosError } from "@app/lib/api/formatAxiosError"; import { DockerManager, DockerState } from "@app/lib/docker"; import { orgQueries, resourceQueries } from "@app/lib/queries"; import { zodResolver } from "@hookform/resolvers/zod"; +import { build } from "@server/build"; import { tlsNameSchema } from "@server/lib/schemas"; import { type GetResourceResponse } from "@server/routers/resource"; import type { ListSitesResponse } from "@server/routers/site"; @@ -953,6 +954,18 @@ function ProxyResourceTargetsForm({
)} + {build === "saas" && + targets.length > 1 && + new Set(targets.map((t) => t.siteId)).size > 1 && ( +

+ + + Round robin routing will not work between + sites that are not connected to the same + node, but failover will work. + +

+ )}
diff --git a/src/app/[orgId]/settings/resources/proxy/create/page.tsx b/src/app/[orgId]/settings/resources/proxy/create/page.tsx index 98151cc36..8eae652cd 100644 --- a/src/app/[orgId]/settings/resources/proxy/create/page.tsx +++ b/src/app/[orgId]/settings/resources/proxy/create/page.tsx @@ -1419,6 +1419,18 @@ export default function Page() {
)} + {build === "enterprise" && + targets.length > 1 && + new Set(targets.map((t) => t.siteId)).size > 1 && ( +

+ + + Round robin routing will not work between + sites that are not connected to the same + node, but failover will work. + +

+ )} From 28dd06c41f0815950bea28582fbc2a79153c679e Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 14:29:57 -0700 Subject: [PATCH 049/131] Add caching to the hc and fix resource stuff --- server/lib/statusHistory.ts | 69 +++++++++++++++++++ .../lib/alerts/events/healthCheckEvents.ts | 20 ++++-- .../lib/alerts/events/resourceEvents.ts | 25 +++++++ .../private/lib/alerts/events/siteEvents.ts | 3 + .../routers/healthChecks/getStatusHistory.ts | 39 ++--------- server/routers/resource/getStatusHistory.ts | 39 ++--------- server/routers/site/getStatusHistory.ts | 39 ++--------- server/routers/target/createTarget.ts | 6 +- server/routers/target/updateTarget.ts | 22 +++--- 9 files changed, 140 insertions(+), 122 deletions(-) diff --git a/server/lib/statusHistory.ts b/server/lib/statusHistory.ts index 896a5e302..b0ef0c927 100644 --- a/server/lib/statusHistory.ts +++ b/server/lib/statusHistory.ts @@ -1,4 +1,73 @@ import { z } from "zod"; +import { db, statusHistory } from "@server/db"; +import { and, eq, gte, asc } from "drizzle-orm"; +import cache from "@server/lib/cache"; + +const STATUS_HISTORY_CACHE_TTL = 60; // seconds + +function statusHistoryCacheKey( + entityType: string, + entityId: number, + days: number +): string { + return `statusHistory:${entityType}:${entityId}:${days}`; +} + +export async function getCachedStatusHistory( + entityType: string, + entityId: number, + days: number +): Promise { + const cacheKey = statusHistoryCacheKey(entityType, entityId, days); + const cached = await cache.get(cacheKey); + if (cached !== undefined) { + return cached; + } + + const nowSec = Math.floor(Date.now() / 1000); + const startSec = nowSec - days * 86400; + + const events = await db + .select() + .from(statusHistory) + .where( + and( + eq(statusHistory.entityType, entityType), + eq(statusHistory.entityId, entityId), + gte(statusHistory.timestamp, startSec) + ) + ) + .orderBy(asc(statusHistory.timestamp)); + + const { buckets, totalDowntime } = computeBuckets(events, days); + const totalWindow = days * 86400; + const overallUptime = + totalWindow > 0 + ? Math.max(0, ((totalWindow - totalDowntime) / totalWindow) * 100) + : 100; + + const result: StatusHistoryResponse = { + entityType, + entityId, + days: buckets, + overallUptimePercent: Math.round(overallUptime * 100) / 100, + totalDowntimeSeconds: totalDowntime + }; + + await cache.set(cacheKey, result, STATUS_HISTORY_CACHE_TTL); + return result; +} + +export async function invalidateStatusHistoryCache( + entityType: string, + entityId: number +): Promise { + const prefix = `statusHistory:${entityType}:${entityId}:`; + const keys = cache.keys().filter((k) => k.startsWith(prefix)); + if (keys.length > 0) { + await cache.del(keys); + } +} export const statusHistoryQuerySchema = z .object({ diff --git a/server/private/lib/alerts/events/healthCheckEvents.ts b/server/private/lib/alerts/events/healthCheckEvents.ts index 48aef424f..abb1e4c2b 100644 --- a/server/private/lib/alerts/events/healthCheckEvents.ts +++ b/server/private/lib/alerts/events/healthCheckEvents.ts @@ -22,6 +22,7 @@ import { Transaction } from "@server/db"; import { eq } from "drizzle-orm"; +import { invalidateStatusHistoryCache } from "@server/lib/statusHistory"; import { fireResourceDegradedAlert, fireResourceHealthyAlert, @@ -61,8 +62,9 @@ export async function fireHealthCheckHealthyAlert( status: "healthy", timestamp: Math.floor(Date.now() / 1000) }); + await invalidateStatusHistoryCache("health_check", healthCheckId); - await handleResource(orgId, healthCheckTargetId, trx); + await handleResource(orgId, healthCheckTargetId, send, trx); if (!send) { return; @@ -124,8 +126,9 @@ export async function fireHealthCheckUnhealthyAlert( status: "unhealthy", timestamp: Math.floor(Date.now() / 1000) }); + await invalidateStatusHistoryCache("health_check", healthCheckId); - await handleResource(orgId, healthCheckTargetId, trx); + await handleResource(orgId, healthCheckTargetId, send, trx); if (!send) { return; @@ -176,8 +179,9 @@ export async function fireHealthCheckUnknownAlert( status: "unknown", timestamp: Math.floor(Date.now() / 1000) }); + await invalidateStatusHistoryCache("health_check", healthCheckId); - await handleResource(orgId, healthCheckTargetId, trx); + await handleResource(orgId, healthCheckTargetId, send, trx); if (!send) { return; @@ -190,11 +194,11 @@ export async function fireHealthCheckUnknownAlert( } } -async function handleResource(orgId: string, healthCheckTargetId?: number | null, trx: Transaction | typeof db = db) { +async function handleResource(orgId: string, healthCheckTargetId?: number | null, send: boolean = true, trx: Transaction | typeof db = db) { if (!healthCheckTargetId) { return; } - // we have resources lets get them + // we have targets lets get them const [target] = await trx .select() .from(targets) @@ -204,6 +208,7 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null if (!target) { return; } + const [resource] = await trx .select() .from(resources) @@ -213,6 +218,7 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null if (!resource) { return; } + const otherTargets = await trx .select({ hcHealth: targetHealthCheck.hcHealth }) .from(targets) @@ -256,6 +262,7 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null resource.resourceId, resource.name, undefined, + send, trx ); } else if (health === "unhealthy") { @@ -264,6 +271,7 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null resource.resourceId, resource.name, undefined, + send, trx ); } else if (health === "healthy") { @@ -272,6 +280,7 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null resource.resourceId, resource.name, undefined, + send, trx ); } else if (health === "degraded") { @@ -280,6 +289,7 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null resource.resourceId, resource.name, undefined, + send, trx ); } diff --git a/server/private/lib/alerts/events/resourceEvents.ts b/server/private/lib/alerts/events/resourceEvents.ts index 289b19b90..006c8f622 100644 --- a/server/private/lib/alerts/events/resourceEvents.ts +++ b/server/private/lib/alerts/events/resourceEvents.ts @@ -14,6 +14,7 @@ import logger from "@server/logger"; import { processAlerts } from "../processAlerts"; import { db, statusHistory, Transaction } from "@server/db"; +import { invalidateStatusHistoryCache } from "@server/lib/statusHistory"; // --------------------------------------------------------------------------- // Public API @@ -35,6 +36,7 @@ export async function fireResourceHealthyAlert( resourceId: number, resourceName?: string | null, extra?: Record, + send: boolean = true, trx: Transaction | typeof db = db ): Promise { try { @@ -45,6 +47,11 @@ export async function fireResourceHealthyAlert( status: "healthy", timestamp: Math.floor(Date.now() / 1000) }); + await invalidateStatusHistoryCache("resource", resourceId); + + if (!send) { + return; + } await processAlerts({ eventType: "resource_healthy", @@ -90,6 +97,7 @@ export async function fireResourceUnhealthyAlert( resourceId: number, resourceName?: string | null, extra?: Record, + send: boolean = true, trx: Transaction | typeof db = db ): Promise { try { @@ -100,6 +108,11 @@ export async function fireResourceUnhealthyAlert( status: "unhealthy", timestamp: Math.floor(Date.now() / 1000) }); + await invalidateStatusHistoryCache("resource", resourceId); + + if (!send) { + return; + } await processAlerts({ eventType: "resource_unhealthy", @@ -145,6 +158,7 @@ export async function fireResourceDegradedAlert( resourceId: number, resourceName?: string | null, extra?: Record, + send: boolean = true, trx: Transaction | typeof db = db ): Promise { try { @@ -155,6 +169,11 @@ export async function fireResourceDegradedAlert( status: "degraded", timestamp: Math.floor(Date.now() / 1000) }); + await invalidateStatusHistoryCache("resource", resourceId); + + if (!send) { + return; + } await processAlerts({ eventType: "resource_degraded", @@ -200,6 +219,7 @@ export async function fireResourceUnknownAlert( resourceId: number, resourceName?: string | null, extra?: Record, + send: boolean = true, trx: Transaction | typeof db = db ): Promise { try { @@ -210,6 +230,11 @@ export async function fireResourceUnknownAlert( status: "unknown", timestamp: Math.floor(Date.now() / 1000) }); + await invalidateStatusHistoryCache("resource", resourceId); + + if (!send) { + return; + } await processAlerts({ eventType: "resource_toggle", diff --git a/server/private/lib/alerts/events/siteEvents.ts b/server/private/lib/alerts/events/siteEvents.ts index 36e3dacff..76939b537 100644 --- a/server/private/lib/alerts/events/siteEvents.ts +++ b/server/private/lib/alerts/events/siteEvents.ts @@ -14,6 +14,7 @@ import logger from "@server/logger"; import { processAlerts } from "../processAlerts"; import { db, sites, statusHistory, targetHealthCheck, Transaction } from "@server/db"; +import { invalidateStatusHistoryCache } from "@server/lib/statusHistory"; import { and, eq, inArray } from "drizzle-orm"; import { fireHealthCheckUnhealthyAlert } from "./healthCheckEvents"; @@ -47,6 +48,7 @@ export async function fireSiteOnlineAlert( status: "online", timestamp: Math.floor(Date.now() / 1000) }); + await invalidateStatusHistoryCache("site", siteId); await processAlerts({ eventType: "site_online", @@ -102,6 +104,7 @@ export async function fireSiteOfflineAlert( status: "offline", timestamp: Math.floor(Date.now() / 1000) }); + await invalidateStatusHistoryCache("site", siteId); const unhealthyHealthChecks = await trx .update(targetHealthCheck) diff --git a/server/private/routers/healthChecks/getStatusHistory.ts b/server/private/routers/healthChecks/getStatusHistory.ts index 2fa596950..d2ef1ec26 100644 --- a/server/private/routers/healthChecks/getStatusHistory.ts +++ b/server/private/routers/healthChecks/getStatusHistory.ts @@ -13,15 +13,13 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { db, statusHistory } from "@server/db"; -import { and, eq, gte, asc } from "drizzle-orm"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { - computeBuckets, + getCachedStatusHistory, statusHistoryQuerySchema, StatusHistoryResponse } from "@server/lib/statusHistory"; @@ -59,39 +57,10 @@ export async function getHealthCheckStatusHistory( const entityId = parsedParams.data.healthCheckId; const { days } = parsedQuery.data; - const nowSec = Math.floor(Date.now() / 1000); - const startSec = nowSec - days * 86400; - - const events = await db - .select() - .from(statusHistory) - .where( - and( - eq(statusHistory.entityType, entityType), - eq(statusHistory.entityId, entityId), - gte(statusHistory.timestamp, startSec) - ) - ) - .orderBy(asc(statusHistory.timestamp)); - - const { buckets, totalDowntime } = computeBuckets(events, days); - const totalWindow = days * 86400; - const overallUptime = - totalWindow > 0 - ? Math.max( - 0, - ((totalWindow - totalDowntime) / totalWindow) * 100 - ) - : 100; + const data = await getCachedStatusHistory(entityType, entityId, days); return response(res, { - data: { - entityType, - entityId, - days: buckets, - overallUptimePercent: Math.round(overallUptime * 100) / 100, - totalDowntimeSeconds: totalDowntime - }, + data, success: true, error: false, message: "Status history retrieved successfully", @@ -103,4 +72,4 @@ export async function getHealthCheckStatusHistory( createHttpError(HttpCode.INTERNAL_SERVER_ERROR, "An error occurred") ); } -} +} \ No newline at end of file diff --git a/server/routers/resource/getStatusHistory.ts b/server/routers/resource/getStatusHistory.ts index 9aa548624..c3dcf6c88 100644 --- a/server/routers/resource/getStatusHistory.ts +++ b/server/routers/resource/getStatusHistory.ts @@ -1,14 +1,12 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { db, statusHistory } from "@server/db"; -import { and, eq, gte, asc } from "drizzle-orm"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { - computeBuckets, + getCachedStatusHistory, statusHistoryQuerySchema, StatusHistoryResponse } from "@server/lib/statusHistory"; @@ -46,39 +44,10 @@ export async function getResourceStatusHistory( const entityId = parsedParams.data.resourceId; const { days } = parsedQuery.data; - const nowSec = Math.floor(Date.now() / 1000); - const startSec = nowSec - days * 86400; - - const events = await db - .select() - .from(statusHistory) - .where( - and( - eq(statusHistory.entityType, entityType), - eq(statusHistory.entityId, entityId), - gte(statusHistory.timestamp, startSec) - ) - ) - .orderBy(asc(statusHistory.timestamp)); - - const { buckets, totalDowntime } = computeBuckets(events, days); - const totalWindow = days * 86400; - const overallUptime = - totalWindow > 0 - ? Math.max( - 0, - ((totalWindow - totalDowntime) / totalWindow) * 100 - ) - : 100; + const data = await getCachedStatusHistory(entityType, entityId, days); return response(res, { - data: { - entityType, - entityId, - days: buckets, - overallUptimePercent: Math.round(overallUptime * 100) / 100, - totalDowntimeSeconds: totalDowntime - }, + data, success: true, error: false, message: "Status history retrieved successfully", @@ -90,4 +59,4 @@ export async function getResourceStatusHistory( createHttpError(HttpCode.INTERNAL_SERVER_ERROR, "An error occurred") ); } -} +} \ No newline at end of file diff --git a/server/routers/site/getStatusHistory.ts b/server/routers/site/getStatusHistory.ts index f1717c8a9..26f1dbbd2 100644 --- a/server/routers/site/getStatusHistory.ts +++ b/server/routers/site/getStatusHistory.ts @@ -1,14 +1,12 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { db, statusHistory } from "@server/db"; -import { and, eq, gte, asc } from "drizzle-orm"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { - computeBuckets, + getCachedStatusHistory, statusHistoryQuerySchema, StatusHistoryResponse } from "@server/lib/statusHistory"; @@ -46,39 +44,10 @@ export async function getSiteStatusHistory( const entityId = parsedParams.data.siteId; const { days } = parsedQuery.data; - const nowSec = Math.floor(Date.now() / 1000); - const startSec = nowSec - days * 86400; - - const events = await db - .select() - .from(statusHistory) - .where( - and( - eq(statusHistory.entityType, entityType), - eq(statusHistory.entityId, entityId), - gte(statusHistory.timestamp, startSec) - ) - ) - .orderBy(asc(statusHistory.timestamp)); - - const { buckets, totalDowntime } = computeBuckets(events, days); - const totalWindow = days * 86400; - const overallUptime = - totalWindow > 0 - ? Math.max( - 0, - ((totalWindow - totalDowntime) / totalWindow) * 100 - ) - : 100; + const data = await getCachedStatusHistory(entityType, entityId, days); return response(res, { - data: { - entityType, - entityId, - days: buckets, - overallUptimePercent: Math.round(overallUptime * 100) / 100, - totalDowntimeSeconds: totalDowntime - }, + data, success: true, error: false, message: "Status history retrieved successfully", @@ -90,4 +59,4 @@ export async function getSiteStatusHistory( createHttpError(HttpCode.INTERNAL_SERVER_ERROR, "An error occurred") ); } -} +} \ No newline at end of file diff --git a/server/routers/target/createTarget.ts b/server/routers/target/createTarget.ts index a44a1a1fb..96df0260d 100644 --- a/server/routers/target/createTarget.ts +++ b/server/routers/target/createTarget.ts @@ -267,7 +267,7 @@ export async function createTarget( healthCheck[0].orgId, healthCheck[0].targetHealthCheckId, healthCheck[0].name, - undefined, + healthCheck[0].targetId, undefined, false, // dont send the alert because we just want to create the alert, not notify users yet trx @@ -278,7 +278,7 @@ export async function createTarget( healthCheck[0].orgId, healthCheck[0].targetHealthCheckId, healthCheck[0].name, - undefined, + healthCheck[0].targetId, undefined, false, // dont send the alert because we just want to create the alert, not notify users yet trx @@ -288,7 +288,7 @@ export async function createTarget( healthCheck[0].orgId, healthCheck[0].targetHealthCheckId, healthCheck[0].name, - undefined, + healthCheck[0].targetId, undefined, false, // dont send the alert because we just want to create the alert, not notify users yet trx diff --git a/server/routers/target/updateTarget.ts b/server/routers/target/updateTarget.ts index 99f1acdeb..92c434a19 100644 --- a/server/routers/target/updateTarget.ts +++ b/server/routers/target/updateTarget.ts @@ -228,12 +228,7 @@ export async function updateTarget( hcHealthValue = undefined; } - const isDisablingHc = - (parsedBody.data.hcEnabled === false || - parsedBody.data.hcEnabled === null) && - existingHc.hcEnabled === true; - - const [updatedHc] = await trx + [updatedHc] = await trx .update(targetHealthCheck) .set({ siteId: parsedBody.data.siteId, @@ -259,32 +254,41 @@ export async function updateTarget( .returning(); if (updatedHc.hcHealth === "unhealthy" && existingHc.hcHealth !== "unhealthy") { + logger.debug( + `Health check ${updatedHc.targetHealthCheckId} for target ${targetId} is now unhealthy, firing alert` + ); await fireHealthCheckUnhealthyAlert( updatedHc.orgId, updatedHc.targetHealthCheckId, updatedHc.name || "", - undefined, + updatedHc.targetId, undefined, false, // dont send the alert because we just want to create the alert, not notify users yet trx ); } else if (updatedHc.hcHealth === "unknown" && existingHc.hcHealth !== "unknown") { + logger.debug( + `Health check ${updatedHc.targetHealthCheckId} for target ${targetId} is now unknown, firing alert` + ); // if the health is unknown, we want to fire an alert to notify users to enable health checks await fireHealthCheckUnknownAlert( updatedHc.orgId, updatedHc.targetHealthCheckId, updatedHc.name, - undefined, + updatedHc.targetId, undefined, false, // dont send the alert because we just want to create the alert, not notify users yet trx ); } else if (updatedHc.hcHealth === "healthy" && existingHc.hcHealth !== "healthy") { + logger.debug( + `Health check ${updatedHc.targetHealthCheckId} for target ${targetId} is now healthy, firing alert` + ); await fireHealthCheckHealthyAlert( updatedHc.orgId, updatedHc.targetHealthCheckId, updatedHc.name, - undefined, + updatedHc.targetId, undefined, false, // dont send the alert because we just want to create the alert, not notify users yet trx From c5072bed80b759fec8a82dcceed616160445ca52 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 14:33:28 -0700 Subject: [PATCH 050/131] Fix healthcheck not showing data --- server/private/routers/healthChecks/getStatusHistory.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/private/routers/healthChecks/getStatusHistory.ts b/server/private/routers/healthChecks/getStatusHistory.ts index d2ef1ec26..51a59e2e1 100644 --- a/server/private/routers/healthChecks/getStatusHistory.ts +++ b/server/private/routers/healthChecks/getStatusHistory.ts @@ -53,7 +53,7 @@ export async function getHealthCheckStatusHistory( ); } - const entityType = "healthCheck"; + const entityType = "health_check"; const entityId = parsedParams.data.healthCheckId; const { days } = parsedQuery.data; From e57312593416982626ae89afc64fd096fff1af8a Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Mon, 27 Apr 2026 15:14:18 -0700 Subject: [PATCH 051/131] update wildcard resources link --- messages/en-US.json | 4 ++-- src/components/DomainPicker.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 9347235ef..c78d3e1be 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -2339,7 +2339,7 @@ "domainPickerVerified": "Verified", "domainPickerUnverified": "Unverified", "domainPickerManual": "Manual", - "domainPickerInvalidSubdomainStructure": "This subdomain contains invalid characters or structure. It will be sanitized automatically when you save.", + "domainPickerInvalidSubdomainStructure": "Invalid characters will be sanitized when saved.", "domainPickerError": "Error", "domainPickerErrorLoadDomains": "Failed to load organization domains", "domainPickerErrorCheckAvailability": "Failed to check domain availability", @@ -3196,7 +3196,7 @@ "webhookHeaderValuePlaceholder": "Value", "alertLabel": "Alert", "domainPickerWildcardSubdomainNotAllowed": "Wildcard subdomains are not allowed.", - "domainPickerWildcardCertWarning": "Wildcard certificates must be configured separately in Traefik.", + "domainPickerWildcardCertWarning": "Wildcard resources may require additional configuration to work properly.", "domainPickerWildcardCertWarningLink": "Learn more", "health": "Health" } diff --git a/src/components/DomainPicker.tsx b/src/components/DomainPicker.tsx index 89cc4fed9..daacf892b 100644 --- a/src/components/DomainPicker.tsx +++ b/src/components/DomainPicker.tsx @@ -913,7 +913,7 @@ export default function DomainPicker({

{t("domainPickerWildcardCertWarning")}{" "} Date: Mon, 27 Apr 2026 15:08:17 -0700 Subject: [PATCH 052/131] Hide the icmp and snmp for now --- src/components/HealthCheckCredenza.tsx | 29 +++++++++++++------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/components/HealthCheckCredenza.tsx b/src/components/HealthCheckCredenza.tsx index 7fa64ba80..c0b78018c 100644 --- a/src/components/HealthCheckCredenza.tsx +++ b/src/components/HealthCheckCredenza.tsx @@ -581,20 +581,21 @@ export function HealthCheckCredenza(props: HealthCheckCredenzaProps) { "healthCheckStrategyTcp" ) }, - { - id: "snmp", - title: "SNMP", - description: t( - "healthCheckStrategySnmp" - ) - }, - { - id: "icmp", - title: "Ping (ICMP)", - description: t( - "healthCheckStrategyIcmp" - ) - } + // lets hide these for now until they are implemented + // { + // id: "snmp", + // title: "SNMP", + // description: t( + // "healthCheckStrategySnmp" + // ) + // }, + // { + // id: "icmp", + // title: "Ping (ICMP)", + // description: t( + // "healthCheckStrategyIcmp" + // ) + // } ]} value={field.value} onChange={(value) => From 3439a3690f9e3de8b6f2da38e520a842c1a2620f Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 15:17:12 -0700 Subject: [PATCH 053/131] Fix site offline not respecting hc enabled --- .../private/lib/alerts/events/siteEvents.ts | 5 ++-- .../target/handleHealthcheckStatusMessage.ts | 27 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/server/private/lib/alerts/events/siteEvents.ts b/server/private/lib/alerts/events/siteEvents.ts index 76939b537..afb53f25f 100644 --- a/server/private/lib/alerts/events/siteEvents.ts +++ b/server/private/lib/alerts/events/siteEvents.ts @@ -112,7 +112,8 @@ export async function fireSiteOfflineAlert( .where( and( eq(targetHealthCheck.orgId, orgId), - eq(targetHealthCheck.siteId, siteId) + eq(targetHealthCheck.siteId, siteId), + eq(targetHealthCheck.hcEnabled, true) // only effect the ones that are enabled ) ) .returning(); @@ -126,7 +127,7 @@ export async function fireSiteOfflineAlert( healthCheck.orgId, healthCheck.targetHealthCheckId, healthCheck.name, - undefined, + healthCheck.targetId, // for the resource if we have one undefined, true, trx diff --git a/server/routers/target/handleHealthcheckStatusMessage.ts b/server/routers/target/handleHealthcheckStatusMessage.ts index 0fe5caf7b..e5f286524 100644 --- a/server/routers/target/handleHealthcheckStatusMessage.ts +++ b/server/routers/target/handleHealthcheckStatusMessage.ts @@ -1,7 +1,4 @@ -import { - db, - targetHealthCheck -} from "@server/db"; +import { db, primaryDb, targetHealthCheck } from "@server/db"; import { MessageHandler } from "@server/routers/ws"; import { Newt } from "@server/db"; import { eq, and, ne } from "drizzle-orm"; @@ -11,7 +8,6 @@ import { fireHealthCheckUnhealthyAlert } from "#dynamic/lib/alerts"; - interface TargetHealthStatus { status: string; lastCheck: string; @@ -85,13 +81,14 @@ export const handleHealthcheckStatusMessage: MessageHandler = async ( continue; } - const [targetCheck] = await db + const [targetCheck] = await primaryDb // using the primary db here in case it has just been updated and we are getting the immediate status back and it has not made it out to the repliacs yet .select({ targetId: targetHealthCheck.targetId, orgId: targetHealthCheck.orgId, targetHealthCheckId: targetHealthCheck.targetHealthCheckId, name: targetHealthCheck.name, - hcHealth: targetHealthCheck.hcHealth + hcHealth: targetHealthCheck.hcHealth, + hcEnabled: targetHealthCheck.hcEnabled }) .from(targetHealthCheck) .where( @@ -103,13 +100,20 @@ export const handleHealthcheckStatusMessage: MessageHandler = async ( .limit(1); if (!targetCheck) { - logger.warn( + logger.debug( `Target ${targetId} not found or does not belong to site ${newt.siteId}` ); errorCount++; continue; } + if (!targetCheck.hcEnabled) { + logger.debug( + `Health check for target ${targetId} is not enabled, skipping update` + ); + continue; + } + // check if the status has changed if (targetCheck.hcHealth === healthStatus.status) { logger.debug( @@ -128,7 +132,12 @@ export const handleHealthcheckStatusMessage: MessageHandler = async ( | "healthy" | "unhealthy" }) - .where(eq(targetHealthCheck.targetHealthCheckId, targetCheck.targetHealthCheckId)); + .where( + eq( + targetHealthCheck.targetHealthCheckId, + targetCheck.targetHealthCheckId + ) + ); // because we are checking above if there was a change we can fire the alert here because it changed if (healthStatus.status === "unhealthy") { From 24f437e260123109b3b143e9bb819fc391bbe475 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 15:24:03 -0700 Subject: [PATCH 054/131] Cap degraded in the mail --- server/emails/templates/AlertNotification.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/server/emails/templates/AlertNotification.tsx b/server/emails/templates/AlertNotification.tsx index 899c4a82f..ce30753da 100644 --- a/server/emails/templates/AlertNotification.tsx +++ b/server/emails/templates/AlertNotification.tsx @@ -117,11 +117,11 @@ function getEventMeta(eventType: AlertEventType): { }; case "resource_degraded": return { - heading: "Resource Unhealthy", - previewText: "A resource in your organization is not healthy.", + heading: "Resource Degraded", + previewText: "A resource in your organization is degraded.", summary: - "A resource in your organization is currently unhealthy.", - statusLabel: "Unhealthy", + "A resource in your organization is currently degraded.", + statusLabel: "Degraded", statusColor: "#dc2626" }; case "resource_toggle": @@ -158,6 +158,8 @@ function resolveToggleStatus(status: unknown): { return { label: "Healthy", color: "#16a34a" }; case "unhealthy": return { label: "Unhealthy", color: "#dc2626" }; + case "degraded": + return { label: "Degraded", color: "#dc2626" }; default: return { label: String(status ?? "Unknown"), color: "#f59e0b" }; } From cbb2388a46793d5b4fdf595e0fc4fd961740f866 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Mon, 27 Apr 2026 15:38:08 -0700 Subject: [PATCH 055/131] add multi site help link --- messages/en-US.json | 2 + src/components/InternalResourceForm.tsx | 215 +++++++++++++----------- 2 files changed, 120 insertions(+), 97 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index c78d3e1be..1b7e446fb 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -2884,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Add Clients", "editInternalResourceDialogDestinationLabel": "Destination", "editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it. Selecting multiple sites will create a high availability resource that can be accessed from any of the selected sites.", + "internalResourceFormMultiSiteRoutingHelp": "Selecting multiple sites enables resilient routing and failover for high availability.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Learn more", "editInternalResourceDialogPortRestrictionsDescription": "Restrict access to specific TCP/UDP ports or allow/block all ports.", "createInternalResourceDialogHttpConfiguration": "HTTP configuration", "createInternalResourceDialogHttpConfigurationDescription": "Choose the domain clients will use to reach this resource over HTTP or HTTPS.", diff --git a/src/components/InternalResourceForm.tsx b/src/components/InternalResourceForm.tsx index 6d7fd1537..76a614207 100644 --- a/src/components/InternalResourceForm.tsx +++ b/src/components/InternalResourceForm.tsx @@ -749,108 +749,129 @@ export function InternalResourceForm({ )}

-
-
- ( - - - {t("sites")} - - - - - - - - - { - setSelectedSites( - sites - ); - field.onChange( - sites.map( - (s) => - s.siteId - ) - ); - }} - /> - - - - - )} - /> -
-
- { - const modeOptions: OptionSelectOption[] = - [ - { - value: "host", - label: t(modeHostKey) - }, - { - value: "cidr", - label: t(modeCidrKey) - }, - { - value: "http", - label: t(modeHttpKey) - } - ]; - return ( - +
+
+
+ ( + - {t(modeLabelKey)} + {t("sites")} - - options={modeOptions} - value={field.value} - onChange={ - field.onChange - } - cols={3} - /> + + + + + + + + { + setSelectedSites( + sites + ); + field.onChange( + sites.map( + (s) => + s.siteId + ) + ); + }} + /> + + - ); - }} - /> + )} + /> +
+
+ { + const modeOptions: OptionSelectOption[] = + [ + { + value: "host", + label: t(modeHostKey) + }, + { + value: "cidr", + label: t(modeCidrKey) + }, + { + value: "http", + label: t(modeHttpKey) + } + ]; + return ( + + + {t(modeLabelKey)} + + + options={modeOptions} + value={field.value} + onChange={ + field.onChange + } + cols={3} + /> + + + ); + }} + /> +
+ {selectedSites.length > 1 && ( +

+ {t( + "internalResourceFormMultiSiteRoutingHelp" + )}{" "} + + {t( + "internalResourceFormMultiSiteRoutingHelpLearnMore" + )} + + + . +

+ )}
Date: Mon, 27 Apr 2026 15:38:32 -0700 Subject: [PATCH 056/131] Fix deleting resource --- server/routers/resource/deleteResource.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/server/routers/resource/deleteResource.ts b/server/routers/resource/deleteResource.ts index a578c3841..682fd6aa9 100644 --- a/server/routers/resource/deleteResource.ts +++ b/server/routers/resource/deleteResource.ts @@ -52,6 +52,16 @@ export async function deleteResource( .from(targets) .where(eq(targets.resourceId, resourceId)); + const healthChecksToBeRemoved = await db + .select() + .from(targetHealthCheck) + .where( + inArray( + targetHealthCheck.targetId, + targetsToBeRemoved.map((t) => t.targetId) + ) + ); + const [deletedResource] = await db .delete(resources) .where(eq(resources.resourceId, resourceId)) @@ -91,16 +101,11 @@ export async function deleteResource( .where(eq(newts.siteId, site.siteId)) .limit(1); - const [healthCheck] = await db - .select() - .from(targetHealthCheck) - .where(eq(targetHealthCheck.targetId, target.targetId)); - await removeTargets( newt.newtId, // [target], [], // deleting the target from newt causes issues because we cant unbind the port. this needs to be fixed in newt before we can do this - [healthCheck], + healthChecksToBeRemoved, deletedResource.protocol, newt.version ); From 7affaf63d0246dc36f761f66439f7596cab644bf Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 16:14:20 -0700 Subject: [PATCH 057/131] Update get cert to now allow restarting --- server/private/routers/certificates/getCertificate.ts | 4 +++- server/routers/certificates/types.ts | 3 ++- src/components/CertificateStatus.tsx | 5 ++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/server/private/routers/certificates/getCertificate.ts b/server/private/routers/certificates/getCertificate.ts index d439011a7..fca53e9bb 100644 --- a/server/private/routers/certificates/getCertificate.ts +++ b/server/private/routers/certificates/getCertificate.ts @@ -40,6 +40,8 @@ async function query(domainId: string, domain: string) { throw new Error(`Domain with ID ${domainId} not found`); } + const domainType = domainRecord.type; + let existing: any[] = []; if (domainRecord.type == "ns" || domainRecord.type == "wildcard") { const domainLevelDown = domain.split(".").slice(1).join("."); @@ -98,7 +100,7 @@ async function query(domainId: string, domain: string) { ); } - return existing.length > 0 ? existing[0] : null; + return existing.length > 0 ? { ...existing[0], domainType } : null; } registry.registerPath({ diff --git a/server/routers/certificates/types.ts b/server/routers/certificates/types.ts index bca9412c4..e6aeecdf8 100644 --- a/server/routers/certificates/types.ts +++ b/server/routers/certificates/types.ts @@ -3,6 +3,7 @@ export type GetCertificateResponse = { domain: string; domainId: string; wildcard: boolean; + domainType: string; status: string; // pending, requested, valid, expired, failed expiresAt: string | null; lastRenewalAttempt: Date | null; @@ -10,4 +11,4 @@ export type GetCertificateResponse = { updatedAt: number; errorMessage?: string | null; renewalCount: number; -}; +}; \ No newline at end of file diff --git a/src/components/CertificateStatus.tsx b/src/components/CertificateStatus.tsx index 8271ccb60..9b08aedfe 100644 --- a/src/components/CertificateStatus.tsx +++ b/src/components/CertificateStatus.tsx @@ -12,7 +12,6 @@ type CertificateStatusProps = { autoFetch?: boolean; showLabel?: boolean; className?: string; - disableRestartButton?: boolean; onRefresh?: () => void; polling?: boolean; pollingInterval?: number; @@ -24,7 +23,6 @@ export default function CertificateStatus({ fullDomain, autoFetch = true, showLabel = true, - disableRestartButton = false, className = "", onRefresh, polling = false, @@ -120,6 +118,7 @@ export default function CertificateStatus({ } const isPending = cert.status === "pending"; + const disableRestartButton = cert.domainType === "wildcard"; return (
@@ -133,7 +132,7 @@ export default function CertificateStatus({ variant="ghost" className={`h-auto p-0 text-sm ${getStatusColor(cert.status)}`} onClick={handleRefresh} - disabled={refreshing} + disabled={refreshing || disableRestartButton} title={t("restartCertificate", { defaultValue: "Restart Certificate" })} From c03519b7f52692730de26ec99966b8ae8fcdd346 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 16:19:23 -0700 Subject: [PATCH 058/131] Send updates when the full domain changes --- server/routers/siteResource/updateSiteResource.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/server/routers/siteResource/updateSiteResource.ts b/server/routers/siteResource/updateSiteResource.ts index 4335b55d3..fd42cc465 100644 --- a/server/routers/siteResource/updateSiteResource.ts +++ b/server/routers/siteResource/updateSiteResource.ts @@ -730,8 +730,10 @@ export async function handleMessagingForUpdatedSiteResource( updatedSiteResource.destinationPort; const aliasChanged = existingSiteResource && - (existingSiteResource.alias !== updatedSiteResource.alias || - existingSiteResource.fullDomain !== updatedSiteResource.fullDomain); // because the full domain gets sent down to the stuff as an alias + existingSiteResource.alias !== updatedSiteResource.alias; + const fullDomainChanged = + existingSiteResource && + existingSiteResource.fullDomain !== updatedSiteResource.fullDomain; const portRangesChanged = existingSiteResource && (existingSiteResource.tcpPortRangeString !== @@ -746,6 +748,7 @@ export async function handleMessagingForUpdatedSiteResource( if ( destinationChanged || aliasChanged || + fullDomainChanged || portRangesChanged || destinationPortChanged ) { @@ -766,6 +769,7 @@ export async function handleMessagingForUpdatedSiteResource( if ( destinationChanged || portRangesChanged || + fullDomainChanged || // if the domain changes we need to update the certs and stuff destinationPortChanged ) { const oldTargets = await generateSubnetProxyTargetV2( @@ -844,7 +848,7 @@ export async function handleMessagingForUpdatedSiteResource( ]) } : undefined, - aliasChanged + aliasChanged || fullDomainChanged // the full domain is sent down as an alias ? { oldAliases: generateAliasConfig([ existingSiteResource From dbee049ac85d282556a06e72494810df2f2bc65a Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 16:30:54 -0700 Subject: [PATCH 059/131] Fix oss build issues --- server/lib/alerts/events/healthCheckEvents.ts | 5 ++++- server/lib/alerts/events/resourceEvents.ts | 5 ++++- server/routers/target/createTarget.ts | 4 ++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/server/lib/alerts/events/healthCheckEvents.ts b/server/lib/alerts/events/healthCheckEvents.ts index 0a6d40f16..00afa22f0 100644 --- a/server/lib/alerts/events/healthCheckEvents.ts +++ b/server/lib/alerts/events/healthCheckEvents.ts @@ -6,6 +6,7 @@ export async function fireHealthCheckHealthyAlert( healthCheckName?: string, healthCheckTargetId?: number | null, extra?: Record, + send: boolean = true, trx?: unknown ): Promise { return; @@ -17,6 +18,7 @@ export async function fireHealthCheckUnhealthyAlert( healthCheckName?: string, healthCheckTargetId?: number | null, extra?: Record, + send: boolean = true, trx?: unknown ): Promise { return; @@ -28,7 +30,8 @@ export async function fireHealthCheckUnknownAlert( healthCheckName?: string | null, healthCheckTargetId?: number | null, extra?: Record, + send: boolean = true, trx?: unknown ): Promise { return; -} \ No newline at end of file +} diff --git a/server/lib/alerts/events/resourceEvents.ts b/server/lib/alerts/events/resourceEvents.ts index 09dd7d8cf..e7a374b44 100644 --- a/server/lib/alerts/events/resourceEvents.ts +++ b/server/lib/alerts/events/resourceEvents.ts @@ -3,6 +3,7 @@ export async function fireResourceHealthyAlert( resourceId: number, resourceName?: string | null, extra?: Record, + send: boolean = true, trx?: unknown ): Promise {} @@ -11,6 +12,7 @@ export async function fireResourceUnhealthyAlert( resourceId: number, resourceName?: string | null, extra?: Record, + send: boolean = true, trx?: unknown ): Promise {} @@ -19,5 +21,6 @@ export async function fireResourceToggleAlert( resourceId: number, resourceName?: string | null, extra?: Record, + send: boolean = true, trx?: unknown -): Promise {} \ No newline at end of file +): Promise {} diff --git a/server/routers/target/createTarget.ts b/server/routers/target/createTarget.ts index 96df0260d..d582d06da 100644 --- a/server/routers/target/createTarget.ts +++ b/server/routers/target/createTarget.ts @@ -266,7 +266,7 @@ export async function createTarget( await fireHealthCheckUnhealthyAlert( healthCheck[0].orgId, healthCheck[0].targetHealthCheckId, - healthCheck[0].name, + healthCheck[0].name || "", healthCheck[0].targetId, undefined, false, // dont send the alert because we just want to create the alert, not notify users yet @@ -287,7 +287,7 @@ export async function createTarget( await fireHealthCheckHealthyAlert( healthCheck[0].orgId, healthCheck[0].targetHealthCheckId, - healthCheck[0].name, + healthCheck[0].name || "", healthCheck[0].targetId, undefined, false, // dont send the alert because we just want to create the alert, not notify users yet From 81a6fb8d0033e52e8f2af5739177087b144c8fb3 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 17:04:04 -0700 Subject: [PATCH 060/131] Dont import from postgres --- server/routers/target/deleteTarget.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/routers/target/deleteTarget.ts b/server/routers/target/deleteTarget.ts index b6cea7139..685c41e7e 100644 --- a/server/routers/target/deleteTarget.ts +++ b/server/routers/target/deleteTarget.ts @@ -10,7 +10,7 @@ import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { removeTargets } from "../newt/targets"; import { OpenAPITags, registry } from "@server/openApi"; -import { targetHealthCheck } from "@server/db/pg"; +import { targetHealthCheck } from "@server/db"; const deleteTargetSchema = z.strictObject({ targetId: z.string().transform(Number).pipe(z.int().positive()) From f89b0a17acc738384802379825775544832ea8e0 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 17:15:44 -0700 Subject: [PATCH 061/131] Set the default to unknown --- server/db/pg/schema/schema.ts | 2 +- server/db/sqlite/schema/schema.ts | 2 +- server/setup/scriptsPg/1.18.0.ts | 2 +- server/setup/scriptsSqlite/1.18.0.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/server/db/pg/schema/schema.ts b/server/db/pg/schema/schema.ts index 473d0f852..7fbcef621 100644 --- a/server/db/pg/schema/schema.ts +++ b/server/db/pg/schema/schema.ts @@ -158,7 +158,7 @@ export const resources = pgTable("resources", { maintenanceMessage: text("maintenanceMessage"), maintenanceEstimatedTime: text("maintenanceEstimatedTime"), postAuthPath: text("postAuthPath"), - health: varchar("health"), // "healthy", "unhealthy" + health: varchar("health").default("unknown"), // "healthy", "unhealthy", "unknown" wildcard: boolean("wildcard").notNull().default(false) }); diff --git a/server/db/sqlite/schema/schema.ts b/server/db/sqlite/schema/schema.ts index 6a24ac8dd..423190420 100644 --- a/server/db/sqlite/schema/schema.ts +++ b/server/db/sqlite/schema/schema.ts @@ -179,7 +179,7 @@ export const resources = sqliteTable("resources", { maintenanceMessage: text("maintenanceMessage"), maintenanceEstimatedTime: text("maintenanceEstimatedTime"), postAuthPath: text("postAuthPath"), - health: text("health"), // "healthy", "unhealthy" + health: text("health").default("unknown"), // "healthy", "unhealthy", "unknown" wildcard: integer("wildcard", { mode: "boolean" }).notNull().default(false) }); diff --git a/server/setup/scriptsPg/1.18.0.ts b/server/setup/scriptsPg/1.18.0.ts index 8431a11c1..fe43112a2 100644 --- a/server/setup/scriptsPg/1.18.0.ts +++ b/server/setup/scriptsPg/1.18.0.ts @@ -347,7 +347,7 @@ export default async function migration() { `); await db.execute(sql` - ALTER TABLE "resources" ADD "health" varchar; + ALTER TABLE "resources" ADD "health" varchar DEFAULT 'unknown'; `); await db.execute(sql` diff --git a/server/setup/scriptsSqlite/1.18.0.ts b/server/setup/scriptsSqlite/1.18.0.ts index d34cf1541..aba817df1 100644 --- a/server/setup/scriptsSqlite/1.18.0.ts +++ b/server/setup/scriptsSqlite/1.18.0.ts @@ -332,7 +332,7 @@ export default async function migration() { ).run(); db.prepare( ` - ALTER TABLE 'resources' ADD 'health' text; + ALTER TABLE 'resources' ADD 'health' text DEFAULT 'unknown'; ` ).run(); db.prepare( From c771722127062aa6787b2d33734a8279cde72a53 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 17:52:41 -0700 Subject: [PATCH 062/131] Dont include rewrite to --- server/lib/ip.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/lib/ip.ts b/server/lib/ip.ts index 3e57e8c94..929399f7b 100644 --- a/server/lib/ip.ts +++ b/server/lib/ip.ts @@ -700,7 +700,6 @@ export async function generateSubnetProxyTargetV2( targets.push({ sourcePrefixes: [], destPrefix: `${siteResource.aliasAddress}/32`, - rewriteTo: destination, portRange, disableIcmp, resourceId: siteResource.siteResourceId, From 85334f082cd970a03e6ebb9bd29646274b97ba21 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 27 Apr 2026 18:20:30 -0700 Subject: [PATCH 063/131] Only support alerts and newt sync on saas --- server/auth/actions.ts | 5 +- server/private/lib/acmeCertSync.ts | 2 +- server/private/routers/certificates/index.ts | 1 + .../routers/certificates/syncCertToNewts.ts | 68 +++++++++++++++++++ server/private/routers/integration.ts | 43 +++++++----- 5 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 server/private/routers/certificates/syncCertToNewts.ts diff --git a/server/auth/actions.ts b/server/auth/actions.ts index 5ae98f965..89ccd7e37 100644 --- a/server/auth/actions.ts +++ b/server/auth/actions.ts @@ -154,10 +154,7 @@ export enum ActionsEnum { createHealthCheck = "createHealthCheck", updateHealthCheck = "updateHealthCheck", deleteHealthCheck = "deleteHealthCheck", - listHealthChecks = "listHealthChecks", - triggerSiteAlert = "triggerSiteAlert", - triggerResourceAlert = "triggerResourceAlert", - triggerHealthCheckAlert = "triggerHealthCheckAlert" + listHealthChecks = "listHealthChecks" } export async function checkUserActionPermission( diff --git a/server/private/lib/acmeCertSync.ts b/server/private/lib/acmeCertSync.ts index f5dfdeb12..a9e818986 100644 --- a/server/private/lib/acmeCertSync.ts +++ b/server/private/lib/acmeCertSync.ts @@ -50,7 +50,7 @@ interface AcmeJson { }; } -async function pushCertUpdateToAffectedNewts( +export async function pushCertUpdateToAffectedNewts( domain: string, domainId: string | null, oldCertPem: string | null, diff --git a/server/private/routers/certificates/index.ts b/server/private/routers/certificates/index.ts index 1ced04c31..18b942d5c 100644 --- a/server/private/routers/certificates/index.ts +++ b/server/private/routers/certificates/index.ts @@ -13,3 +13,4 @@ export * from "./getCertificate"; export * from "./restartCertificate"; +export * from "./syncCertToNewts"; diff --git a/server/private/routers/certificates/syncCertToNewts.ts b/server/private/routers/certificates/syncCertToNewts.ts new file mode 100644 index 000000000..ac6089acb --- /dev/null +++ b/server/private/routers/certificates/syncCertToNewts.ts @@ -0,0 +1,68 @@ +/* + * This file is part of a proprietary work. + * + * Copyright (c) 2025-2026 Fossorial, Inc. + * All rights reserved. + * + * This file is licensed under the Fossorial Commercial License. + * You may not use this file except in compliance with the License. + * Unauthorized use, copying, modification, or distribution is strictly prohibited. + * + * This file is not licensed under the AGPLv3. + */ + +import { Request, Response, NextFunction } from "express"; +import { z } from "zod"; +import { pushCertUpdateToAffectedNewts } from "#private/lib/acmeCertSync"; +import logger from "@server/logger"; +import HttpCode from "@server/types/HttpCode"; +import createHttpError from "http-errors"; +import { fromError } from "zod-validation-error"; + +const bodySchema = z.object({ + domain: z.string().min(1), + domainId: z.string().nullable().optional().default(null) +}); + +export async function syncCertToNewts( + req: Request, + res: Response, + next: NextFunction +): Promise { + const parsed = bodySchema.safeParse(req.body); + if (!parsed.success) { + return next( + createHttpError( + HttpCode.BAD_REQUEST, + fromError(parsed.error).toString() + ) + ); + } + + const { domain, domainId } = parsed.data; + + logger.debug( + `syncCertToNewts: received request to push cert update for domain "${domain}" (domainId: ${domainId ?? "none"})` + ); + + try { + await pushCertUpdateToAffectedNewts(domain, domainId, null, null); + + res.status(HttpCode.OK).json({ + data: null, + success: true, + error: false, + message: `Certificate update pushed to affected newts for domain "${domain}"` + }); + } catch (err) { + logger.error( + `syncCertToNewts: error pushing cert update for domain "${domain}": ${err}` + ); + return next( + createHttpError( + HttpCode.INTERNAL_SERVER_ERROR, + "Failed to push certificate update to affected newts" + ) + ); + } +} \ No newline at end of file diff --git a/server/private/routers/integration.ts b/server/private/routers/integration.ts index ed97b3751..d5dac01e1 100644 --- a/server/private/routers/integration.ts +++ b/server/private/routers/integration.ts @@ -15,6 +15,7 @@ import * as orgIdp from "#private/routers/orgIdp"; import * as org from "#private/routers/org"; import * as logs from "#private/routers/auditLogs"; import * as alertEvents from "#private/routers/alertEvents"; +import * as certificates from "#private/routers/certificates"; import { verifyApiKeyHasAction, @@ -37,30 +38,36 @@ import { } from "@server/routers/integration"; import { logActionAudit } from "#private/middlewares"; import { tierMatrix } from "@server/lib/billing/tierMatrix"; +import { build } from "@server/build"; export const unauthenticated = ua; export const authenticated = a; -authenticated.post( - "/org/:orgId/site/:siteId/trigger-alert", - verifyApiKeyIsRoot, - verifyApiKeyHasAction(ActionsEnum.triggerSiteAlert), - alertEvents.triggerSiteAlert -); +if (build == "saas") { + authenticated.post( + "/org/:orgId/site/:siteId/trigger-alert", + verifyApiKeyIsRoot, + alertEvents.triggerSiteAlert + ); -authenticated.post( - "/org/:orgId/resource/:resourceId/trigger-alert", - verifyApiKeyIsRoot, - verifyApiKeyHasAction(ActionsEnum.triggerResourceAlert), - alertEvents.triggerResourceAlert -); + authenticated.post( + "/org/:orgId/resource/:resourceId/trigger-alert", + verifyApiKeyIsRoot, + alertEvents.triggerResourceAlert + ); -authenticated.post( - "/org/:orgId/health-check/:healthCheckId/trigger-alert", - verifyApiKeyIsRoot, - verifyApiKeyHasAction(ActionsEnum.triggerHealthCheckAlert), - alertEvents.triggerHealthCheckAlert -); + authenticated.post( + "/org/:orgId/health-check/:healthCheckId/trigger-alert", + verifyApiKeyIsRoot, + alertEvents.triggerHealthCheckAlert + ); + + authenticated.post( + "/cert/sync-to-newts", + verifyApiKeyIsRoot, + certificates.syncCertToNewts + ); +} authenticated.post( `/org/:orgId/send-usage-notification`, From e4bf2da2e5b20e5a88282ad0e56d4b301dcf85d0 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:24:58 -0700 Subject: [PATCH 064/131] New translations en-us.json (French) --- messages/fr-FR.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/fr-FR.json b/messages/fr-FR.json index 8b9cd90b9..ff9cca43d 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "J'ai copié la configuration", "searchSitesProgress": "Rechercher des nœuds...", "siteAdd": "Ajouter un nœud", + "sitesTableViewPublicResources": "Voir les ressources publiques", + "sitesTableViewPrivateResources": "Voir les ressources privées", "siteInstallNewt": "Installer Newt", "siteInstallNewtDescription": "Faites fonctionner Newt sur votre système", "WgConfiguration": "Configuration WireGuard", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "Le nœud a été mis à jour.", "siteGeneralDescription": "Configurer les paramètres par défaut de ce nœud", "siteSettingDescription": "Configurer les paramètres du site", + "siteResourcesTab": "Ressources", + "siteResourcesNoneOnSite": "Ce site n'a pas encore de ressources publiques ou privées.", + "siteResourcesSectionPublic": "Ressources publiques", + "siteResourcesSectionPrivate": "Ressources privées", + "siteResourcesSectionPublicDescription": "Ressources exposées à l'extérieur via des domaines ou des ports.", + "siteResourcesSectionPrivateDescription": "Ressources disponibles sur votre réseau privé via le site.", + "siteResourcesViewAllPublic": "Voir toutes les ressources", + "siteResourcesViewAllPrivate": "Voir toutes les ressources", + "siteResourcesDialogDescription": "Aperçu des ressources publiques et privées associées à ce site.", + "siteResourcesShowMore": "Afficher plus", + "siteResourcesPermissionDenied": "Vous n'avez pas la permission de lister ces ressources.", + "siteResourcesEmptyPublic": "Aucune ressource publique ne cible encore ce site.", + "siteResourcesEmptyPrivate": "Aucune ressource privée n'est encore associée à ce site.", + "siteResourcesHowToAccess": "Comment accéder", + "siteResourcesTargetsOnSite": "Cibles sur ce site", "siteSetting": "Paramètres de {siteName}", "siteNewtTunnel": "Site Newt (Recommandé)", "siteNewtTunnelDescription": "La façon la plus simple de créer un point d'entrée dans n'importe quel réseau. Pas de configuration supplémentaire.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Les changements d'état de la vérification de l'état de santé", "alertingTriggerResourceHealthy": "Ressource saine", "alertingTriggerResourceUnhealthy": "Ressource non saine", + "alertingTriggerResourceDegraded": "Ressource dégradée", "alertingSearchHealthChecks": "Rechercher des vérifications de l'état de santé…", "alertingHealthChecksEmpty": "Aucune vérification de l'état de santé disponible.", "alertingTriggerResourceToggle": "Les changements d'état de la ressource", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Créer le compte administrateur du serveur initial. Un seul administrateur serveur peut exister. Vous pouvez toujours changer ces informations d'identification plus tard.", "createAdminAccount": "Créer un compte administrateur", "setupErrorCreateAdmin": "Une erreur s'est produite lors de la création du compte administrateur du serveur.", - "certificateStatus": "Statut du certificat", + "certificateStatus": "Certificat", "loading": "Chargement", "loadingAnalytics": "Chargement de l'analyse", "restart": "Redémarrer", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Configurer la vérification de l'état de santé", "configureHealthCheckDescription": "Configurer la surveillance de la santé pour {target}", "enableHealthChecks": "Activer les vérifications de santé", + "healthCheckDisabledStateDescription": "Lorsqu'il est désactivé, le site ne procédera pas aux vérifications de santé et l'état sera considéré comme inconnu.", "enableHealthChecksDescription": "Surveiller la vie de cette cible. Vous pouvez surveiller un point de terminaison différent de la cible si nécessaire.", "healthScheme": "Méthode", "healthSelectScheme": "Sélectionnez la méthode", @@ -1947,6 +1966,8 @@ "httpMethod": "Méthode HTTP", "selectHttpMethod": "Sélectionnez la méthode HTTP", "domainPickerSubdomainLabel": "Sous-domaine", + "domainPickerWildcard": "Joker", + "domainPickerWildcardPaidOnly": "Les sous-domaines Joker sont une fonctionnalité payante. Veuillez mettre à niveau pour accéder à cette fonctionnalité.", "domainPickerBaseDomainLabel": "Domaine de base", "domainPickerSearchDomains": "Rechercher des domaines...", "domainPickerNoDomainsFound": "Aucun domaine trouvé", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Cette adresse fait partie du sous-réseau utilitaire de l'organisation. Elle est utilisée pour résoudre les enregistrements d'alias en utilisant une résolution DNS interne.", "resourcesTableClients": "Clients", "resourcesTableAndOnlyAccessibleInternally": "et sont uniquement accessibles en interne lorsqu'elles sont connectées avec un client.", - "resourcesTableNoTargets": "Aucune cible", "resourcesTableHealthy": "Sain", "resourcesTableDegraded": "Dégradé", - "resourcesTableOffline": "Hors ligne", + "resourcesTableUnhealthy": "En mauvaise santé", "resourcesTableUnknown": "Inconnu", "resourcesTableNotMonitored": "Non-monitoré", + "resourcesTableNoTargets": "Aucune cible", "editInternalResourceDialogEditClientResource": "Modifier une ressource privée", "editInternalResourceDialogUpdateResourceProperties": "Mettre à jour la configuration de la ressource et les contrôles d'accès pour {resourceName}", "editInternalResourceDialogResourceProperties": "Propriétés de la ressource", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Vérifié", "domainPickerUnverified": "Non vérifié", "domainPickerManual": "Manuel", - "domainPickerInvalidSubdomainStructure": "Ce sous-domaine contient des caractères ou une structure non valide. Il sera automatiquement nettoyé lorsque vous enregistrez.", + "domainPickerInvalidSubdomainStructure": "Les caractères invalides seront nettoyés lors de l'enregistrement.", "domainPickerError": "Erreur", "domainPickerErrorLoadDomains": "Impossible de charger les domaines de l'organisation", "domainPickerErrorCheckAvailability": "Impossible de vérifier la disponibilité du domaine", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Ajouter des clients", "editInternalResourceDialogDestinationLabel": "Destination", "editInternalResourceDialogDestinationDescription": "Indiquez l'adresse de destination pour la ressource interne. Cela peut être un nom d'hôte, une adresse IP ou une plage CIDR selon le mode sélectionné. Définissez éventuellement un alias DNS interne pour une identification plus facile.", + "internalResourceFormMultiSiteRoutingHelp": "La sélection de plusieurs sites permet un routage résilient et un basculement pour une haute disponibilité.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "En savoir plus", "editInternalResourceDialogPortRestrictionsDescription": "Restreindre l'accès à des ports TCP/UDP spécifiques ou autoriser/bloquer tous les ports.", "createInternalResourceDialogHttpConfiguration": "Configuration HTTP", "createInternalResourceDialogHttpConfigurationDescription": "Choisissez le domaine que les clients utiliseront pour atteindre cette ressource via HTTP ou HTTPS.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Temps d'achèvement estimé (facultatif)", "privateMaintenanceScreenTitle": "Écran de maintien de service privé", "privateMaintenanceScreenMessage": "Ce domaine est utilisé sur une ressource privée. Veuillez vous connecter à l'aide du client Pangolin pour accéder à cette ressource.", + "privateMaintenanceScreenSteps": "Une fois connecté, si vous voyez toujours ce message, le cache DNS de votre navigateur peut toujours pointer vers l'ancienne adresse. Pour résoudre cela : fermez complètement et rouvrez cet onglet, ou votre navigateur, puis retournez sur cette page.", "maintenanceTime": "par exemple, 2 heures, le 1er nov. à 17:00", "maintenanceEstimatedTimeDescription": "Quand vous attendez que la maintenance soit terminée", "editDomain": "Modifier le domaine", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Supprimer", "publicIpEndpoint": "Point de terminaison", "lastTriggeredAt": "Dernier déclenchement", - "reject": "Rejeter" + "reject": "Rejeter", + "uptimeDaysAgo": "Il y a {count} jours", + "uptimeToday": "Aujourd'hui", + "uptimeNoDataAvailable": "Aucune donnée disponible", + "uptimeSuffix": "disponibilité", + "uptimeDowntimeSuffix": "indisponibilité", + "uptimeTooltipUptimeLabel": "Disponibilité", + "uptimeTooltipDowntimeLabel": "Indisponibilité", + "uptimeOngoing": "en cours", + "uptimeNoMonitoringData": "Pas de données de surveillance", + "uptimeNoData": "Aucune donnée", + "uptimeMiniBarDown": "Non disponible", + "uptimeSectionTitle": "Disponibilité", + "uptimeSectionDescription": "Disponibilité sur les {days} derniers jours", + "uptimeAddAlert": "Ajouter une alerte", + "uptimeViewAlerts": "Voir les alertes", + "uptimeCreateEmailAlert": "Créer une alerte par e-mail", + "uptimeAlertDescriptionSite": "Recevez un e-mail lorsque ce site est hors ligne ou revient en ligne.", + "uptimeAlertDescriptionResource": "Recevez un e-mail lorsque cette ressource est hors ligne ou revient en ligne.", + "uptimeAlertNamePlaceholder": "Nom de l'alerte", + "uptimeAdditionalEmails": "E-mails supplémentaires", + "uptimeCreateAlert": "Créer une alerte", + "uptimeAlertNoRecipients": "Aucun destinataire", + "uptimeAlertNoRecipientsDescription": "Veuillez ajouter au moins un utilisateur, rôle ou e-mail à notifier.", + "uptimeAlertCreated": "Alerte créé", + "uptimeAlertCreatedDescription": "Vous serez notifié lorsque ce statut changera.", + "uptimeAlertCreateFailed": "Échec de la création de l'alerte", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Clé", + "webhookHeaderValuePlaceholder": "Valeur", + "alertLabel": "Alerte", + "domainPickerWildcardSubdomainNotAllowed": "Les sous-domaines Joker ne sont pas autorisés.", + "domainPickerWildcardCertWarning": "Les ressources Joker peuvent nécessiter une configuration supplémentaire pour fonctionner correctement.", + "domainPickerWildcardCertWarningLink": "En savoir plus", + "health": "Santé" } From c0a4541455d569e339619b6a281cc9f7b77b60dc Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:00 -0700 Subject: [PATCH 065/131] New translations en-us.json (Bulgarian) --- messages/bg-BG.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/bg-BG.json b/messages/bg-BG.json index bf953e4d4..eb129ee32 100644 --- a/messages/bg-BG.json +++ b/messages/bg-BG.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Копирах конфигурацията", "searchSitesProgress": "Търсене на сайтове...", "siteAdd": "Добавете сайт", + "sitesTableViewPublicResources": "Вижте публични ресурси", + "sitesTableViewPrivateResources": "Вижте частни ресурси", "siteInstallNewt": "Инсталирайте Newt", "siteInstallNewtDescription": "Пуснете Newt на вашата система", "WgConfiguration": "WireGuard конфигурация", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "Сайтът е актуализиран.", "siteGeneralDescription": "Конфигурирайте общи настройки за този сайт", "siteSettingDescription": "Конфигурирайте настройките на сайта", + "siteResourcesTab": "Ресурси", + "siteResourcesNoneOnSite": "Този сайт все още няма публични или частни ресурси.", + "siteResourcesSectionPublic": "Публични ресурси", + "siteResourcesSectionPrivate": "Частни ресурси", + "siteResourcesSectionPublicDescription": "Ресурси, които са изложени външно чрез домейни или портове.", + "siteResourcesSectionPrivateDescription": "Ресурси, които са достъпни в частната ви мрежа през сайта.", + "siteResourcesViewAllPublic": "Виж всички ресурси", + "siteResourcesViewAllPrivate": "Виж всички ресурси", + "siteResourcesDialogDescription": "Преглед на публични и частни ресурси, свързани с този сайт.", + "siteResourcesShowMore": "Покажи повече", + "siteResourcesPermissionDenied": "Нямате разрешение да изброите тези ресурси.", + "siteResourcesEmptyPublic": "Няма публични ресурси, насочени към този сайт все още.", + "siteResourcesEmptyPrivate": "Няма частни ресурси, свързани с този сайт още.", + "siteResourcesHowToAccess": "Как да получите достъп", + "siteResourcesTargetsOnSite": "Цели на този сайт", "siteSetting": "Настройки на {siteName}", "siteNewtTunnel": "Нов Сайт (Препоръчително)", "siteNewtTunnelDescription": "Най-лесният начин да създадете точка за достъп до всяка мрежа. Няма нужда от допълнителни настройки.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Състоянието на проверката се променя", "alertingTriggerResourceHealthy": "Ресурсът е здрав", "alertingTriggerResourceUnhealthy": "Ресурсът не е здрав", + "alertingTriggerResourceDegraded": "Деградирал ресурс", "alertingSearchHealthChecks": "Търсене на проверки на състоянието…", "alertingHealthChecksEmpty": "Няма налични проверки на състоянието.", "alertingTriggerResourceToggle": "Състоянието на ресурса се променя", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Създайте администраторски акаунт на сървъра. Може да съществува само един администраторски акаунт. Винаги можете да промените тези данни по-късно.", "createAdminAccount": "Създаване на админ акаунт", "setupErrorCreateAdmin": "Възникна грешка при създаване на админ акаунт.", - "certificateStatus": "Статус на сертификата", + "certificateStatus": "Сертификат", "loading": "Зареждане", "loadingAnalytics": "Зареждане на анализи", "restart": "Рестарт", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Конфигуриране на проверка на здравето", "configureHealthCheckDescription": "Настройте мониторинг на здравето за {target}", "enableHealthChecks": "Разрешаване на проверки на здравето", + "healthCheckDisabledStateDescription": "Когато е деактивиран, сайтът не изпълнява проверки и състоянието се счита за неизвестно.", "enableHealthChecksDescription": "Мониторинг на здравето на тази цел. Можете да наблюдавате различен краен пункт от целта, ако е необходимо.", "healthScheme": "Метод", "healthSelectScheme": "Избор на метод", @@ -1947,6 +1966,8 @@ "httpMethod": "HTTP Метод", "selectHttpMethod": "Изберете HTTP метод", "domainPickerSubdomainLabel": "Поддомен", + "domainPickerWildcard": "Уайлдкард", + "domainPickerWildcardPaidOnly": "Уайлдкард подсайтовете са платена функция. Моля, надстройте за достъп до тази функция.", "domainPickerBaseDomainLabel": "Основен домейн", "domainPickerSearchDomains": "Търсене на домейни...", "domainPickerNoDomainsFound": "Не са намерени домейни", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Този адрес е част от подсистемата на организацията. Използва се за разрешаване на псевдонимни записи чрез вътрешно DNS разрешаване.", "resourcesTableClients": "Клиенти", "resourcesTableAndOnlyAccessibleInternally": "и са достъпни само вътрешно при свързване с клиент.", - "resourcesTableNoTargets": "Без цели", "resourcesTableHealthy": "Здрав", "resourcesTableDegraded": "Влошен", - "resourcesTableOffline": "Извън линия", + "resourcesTableUnhealthy": "Нездравословно", "resourcesTableUnknown": "Неизвестно", "resourcesTableNotMonitored": "Не е наблюдавано", + "resourcesTableNoTargets": "Няма цели", "editInternalResourceDialogEditClientResource": "Редактиране на частен ресурс", "editInternalResourceDialogUpdateResourceProperties": "Актуализирайте конфигурацията на ресурса и контрола на достъпа за {resourceName}", "editInternalResourceDialogResourceProperties": "Свойствата на ресурса", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Проверено", "domainPickerUnverified": "Непроверено", "domainPickerManual": "Ръчно", - "domainPickerInvalidSubdomainStructure": "Този поддомен съдържа невалидни знаци или структура. Ще бъде автоматично пречистен при запазване.", + "domainPickerInvalidSubdomainStructure": "Невалидните символи ще бъдат почистени при записване.", "domainPickerError": "Грешка", "domainPickerErrorLoadDomains": "Неуспешно зареждане на домейни на организацията", "domainPickerErrorCheckAvailability": "Неуспешна проверка на наличността на домейни", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Добавяне на клиенти.", "editInternalResourceDialogDestinationLabel": "Дестинация.", "editInternalResourceDialogDestinationDescription": "Посочете адреса дестинация за вътрешния ресурс. Това може да бъде име на хост, IP адрес или CIDR обхват в зависимост от избрания режим. По избор настройте вътрешен DNS алиас за по-лесно идентифициране.", + "internalResourceFormMultiSiteRoutingHelp": "Избирайки няколко сайта, се осигурява сигурен път и пренасочване при висока достъпност.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Научете повече", "editInternalResourceDialogPortRestrictionsDescription": "Ограничете достъпа до конкретни TCP/UDP портове или позволете/блокирайте всички портове.", "createInternalResourceDialogHttpConfiguration": "Конфигурация HTTP", "createInternalResourceDialogHttpConfigurationDescription": "Изберете домейна, който клиентите ще използват, за да достигнат този ресурс чрез HTTP или HTTPS.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Очаквано време за завършване (по избор).", "privateMaintenanceScreenTitle": "Екран за поддръжка", "privateMaintenanceScreenMessage": "Този домейн се използва при частен ресурс. Моля, свържете се с клиента на Pangolin, за да получите достъп до този ресурс.", + "privateMaintenanceScreenSteps": "След свързване, ако все още виждате това съобщение, кешът на DNS на вашия браузър все още може да сочи към стария адрес. За да коригирате това: напълно затворете и отворете отново този раздел, или браузъра си, след това се върнете на тази страница.", "maintenanceTime": "например, 2 часа, 1 ноември в 17:00.", "maintenanceEstimatedTimeDescription": "Кога очаквате поддръжката да бъде завършена?", "editDomain": "Редактиране на домейна.", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Изтриване", "publicIpEndpoint": "Крайна точка", "lastTriggeredAt": "Последен тригер", - "reject": "Отхвърляне" + "reject": "Отхвърляне", + "uptimeDaysAgo": "{count} days ago", + "uptimeToday": "Днес", + "uptimeNoDataAvailable": "Няма налични данни", + "uptimeSuffix": "време без прекъсване", + "uptimeDowntimeSuffix": "време на прекъсване", + "uptimeTooltipUptimeLabel": "Време без прекъсване", + "uptimeTooltipDowntimeLabel": "Време на прекъсване", + "uptimeOngoing": "текущо", + "uptimeNoMonitoringData": "Няма данни за наблюдение", + "uptimeNoData": "Няма данни", + "uptimeMiniBarDown": "Прекъсване", + "uptimeSectionTitle": "Време без прекъсване", + "uptimeSectionDescription": "Наличност през последните {days} дни", + "uptimeAddAlert": "Добавяне на известие", + "uptimeViewAlerts": "Преглед на известията", + "uptimeCreateEmailAlert": "Създаване на електронна известие", + "uptimeAlertDescriptionSite": "Получавайте известия по електронна поща, когато този сайт се изключи или отново стане онлайн.", + "uptimeAlertDescriptionResource": "Получавайте известия по електронна поща, когато този ресурс се изключи или отново стане онлайн.", + "uptimeAlertNamePlaceholder": "Име на известието", + "uptimeAdditionalEmails": "Допълнителни имейли", + "uptimeCreateAlert": "Създаване на известие", + "uptimeAlertNoRecipients": "Няма получатели", + "uptimeAlertNoRecipientsDescription": "Моля, добавете поне един потребител, рол, или имейл за известяване.", + "uptimeAlertCreated": "Известието е създадено", + "uptimeAlertCreatedDescription": "Ще бъдете известени, когато това промени статуса си.", + "uptimeAlertCreateFailed": "Неуспешно създаване на известие", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Ключ", + "webhookHeaderValuePlaceholder": "Стойност", + "alertLabel": "Известие", + "domainPickerWildcardSubdomainNotAllowed": "Уайлдкард подсайтове не са позволени.", + "domainPickerWildcardCertWarning": "Ресурсите с уайлдкард може да изискват допълнителна конфигурация за правилна работа.", + "domainPickerWildcardCertWarningLink": "Научете повече", + "health": "Здраве" } From 68ea7d1d98d3aae27c052c65a46e82ce1b11894d Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:02 -0700 Subject: [PATCH 066/131] New translations en-us.json (Czech) --- messages/cs-CZ.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/cs-CZ.json b/messages/cs-CZ.json index 0e43a4043..181bff665 100644 --- a/messages/cs-CZ.json +++ b/messages/cs-CZ.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Konfiguraci jsem zkopíroval", "searchSitesProgress": "Hledat lokality...", "siteAdd": "Přidat lokalitu", + "sitesTableViewPublicResources": "Zobrazit veřejné zdroje", + "sitesTableViewPrivateResources": "Zobrazit soukromé zdroje", "siteInstallNewt": "Nainstalovat Newt", "siteInstallNewtDescription": "Spustit Newt na vašem systému", "WgConfiguration": "Konfigurace WireGuard", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "Lokalita byla upravena.", "siteGeneralDescription": "Upravte obecná nastavení pro tuto lokalitu", "siteSettingDescription": "Konfigurace nastavení na webu", + "siteResourcesTab": "Zdroje", + "siteResourcesNoneOnSite": "Tento web zatím nemá veřejné ani soukromé zdroje.", + "siteResourcesSectionPublic": "Veřejné zdroje", + "siteResourcesSectionPrivate": "Soukromé zdroje", + "siteResourcesSectionPublicDescription": "Zdroje zpřístupněné externě prostřednictvím domén nebo portů.", + "siteResourcesSectionPrivateDescription": "Zdroje dostupné ve vaší soukromé síti prostřednictvím webu.", + "siteResourcesViewAllPublic": "Zobrazit všechny zdroje", + "siteResourcesViewAllPrivate": "Zobrazit všechny zdroje", + "siteResourcesDialogDescription": "Přehled veřejných a soukromých zdrojů spojených s tímto webem.", + "siteResourcesShowMore": "Ukázat více", + "siteResourcesPermissionDenied": "Nemáte oprávnění k vypsání těchto zdrojů.", + "siteResourcesEmptyPublic": "Žádné veřejné zdroje ještě necílí na tento web.", + "siteResourcesEmptyPrivate": "Žádné soukromé zdroje ještě nejsou spojené s tímto webem.", + "siteResourcesHowToAccess": "Jak získat přístup", + "siteResourcesTargetsOnSite": "Cíle na tomto webu", "siteSetting": "Nastavení {siteName}", "siteNewtTunnel": "Novinka (doporučeno)", "siteNewtTunnelDescription": "Nejjednodušší způsob, jak vytvořit vstupní bod do jakékoli sítě. Žádné další nastavení.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Změny stavu kontroly stavu", "alertingTriggerResourceHealthy": "Zdroj je zdravý", "alertingTriggerResourceUnhealthy": "Zdroj je nezdravý", + "alertingTriggerResourceDegraded": "Zhoršený zdroj", "alertingSearchHealthChecks": "Hledat kontroly stavu…", "alertingHealthChecksEmpty": "Nejsou dostupné kontroly stavu.", "alertingTriggerResourceToggle": "Změny stavu zdroje", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Vytvořte účet správce intial serveru. Pouze jeden správce serveru může existovat. Tyto přihlašovací údaje můžete kdykoliv změnit.", "createAdminAccount": "Vytvořit účet správce", "setupErrorCreateAdmin": "Došlo k chybě při vytváření účtu správce serveru.", - "certificateStatus": "Stav certifikátu", + "certificateStatus": "Certifikát", "loading": "Načítání", "loadingAnalytics": "Načítání analytiky", "restart": "Restartovat", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Konfigurace kontroly stavu", "configureHealthCheckDescription": "Nastavit sledování zdravotního stavu pro {target}", "enableHealthChecks": "Povolit kontrolu stavu", + "healthCheckDisabledStateDescription": "Pokud je zakázáno, web nebude provádět zdravotní kontroly a stav bude považován za neznámý.", "enableHealthChecksDescription": "Sledujte zdraví tohoto cíle. V případě potřeby můžete sledovat jiný cílový bod, než je cíl.", "healthScheme": "Způsob", "healthSelectScheme": "Vybrat metodu", @@ -1947,6 +1966,8 @@ "httpMethod": "HTTP metoda", "selectHttpMethod": "Vyberte HTTP metodu", "domainPickerSubdomainLabel": "Subdoména", + "domainPickerWildcard": "Zástupný znak", + "domainPickerWildcardPaidOnly": "Zástupné poddomény jsou placenou funkcí. Upgradujte, prosím, pro přístup k této funkci.", "domainPickerBaseDomainLabel": "Základní doména", "domainPickerSearchDomains": "Hledat domény...", "domainPickerNoDomainsFound": "Nebyly nalezeny žádné domény", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Tato adresa je součástí subsítě veřejných služeb organizace. Používá se k řešení záznamů aliasů pomocí interního rozlišení DNS.", "resourcesTableClients": "Klienti", "resourcesTableAndOnlyAccessibleInternally": "a jsou interně přístupné pouze v případě, že jsou propojeni s klientem.", - "resourcesTableNoTargets": "Žádné cíle", "resourcesTableHealthy": "Zdravé", "resourcesTableDegraded": "Rozklad", - "resourcesTableOffline": "Offline", + "resourcesTableUnhealthy": "Nezdravý", "resourcesTableUnknown": "Neznámý", "resourcesTableNotMonitored": "Není sledováno", + "resourcesTableNoTargets": "Žádné cíle", "editInternalResourceDialogEditClientResource": "Upravit soukromý dokument", "editInternalResourceDialogUpdateResourceProperties": "Aktualizovat konfiguraci zdroje a ovládací prvky přístupu pro {resourceName}", "editInternalResourceDialogResourceProperties": "Vlastnosti zdroje", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Ověřeno", "domainPickerUnverified": "Neověřeno", "domainPickerManual": "Ruční nastavení", - "domainPickerInvalidSubdomainStructure": "Tato subdoména obsahuje neplatné znaky nebo strukturu. Bude automaticky sanitována při uložení.", + "domainPickerInvalidSubdomainStructure": "Neplatné znaky budou při ukládání vyčištěny.", "domainPickerError": "Chyba", "domainPickerErrorLoadDomains": "Nepodařilo se načíst domény organizace", "domainPickerErrorCheckAvailability": "Kontrola dostupnosti domény se nezdařila", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Přidat klienty", "editInternalResourceDialogDestinationLabel": "Cíl", "editInternalResourceDialogDestinationDescription": "Určete cílovou adresu pro interní prostředek. Může se jednat o hostname, IP adresu, nebo rozsah CIDR v závislosti na vybraném režimu. Volitelně nastavte interní DNS alias pro snazší identifikaci.", + "internalResourceFormMultiSiteRoutingHelp": "Výběrem více webů se povolí odolné směrování a přepojení pro vysokou dostupnost.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Zjistit více", "editInternalResourceDialogPortRestrictionsDescription": "Omezte přístup na specifické TCP/UDP porty nebo povolte/blokujte všechny porty.", "createInternalResourceDialogHttpConfiguration": "Konfigurace HTTP", "createInternalResourceDialogHttpConfigurationDescription": "Zvolte doménu, kterou klienti použijí k dosažení tohoto zdroje přes HTTP nebo HTTPS.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Odhadovaný čas dokončení (volitelný)", "privateMaintenanceScreenTitle": "Soukromá obrazovka údržby", "privateMaintenanceScreenMessage": "Tato doména je používána na soukromém zdroji. Prosím, připojte se přes klienta Pangolin pro přístup k tomuto zdroji.", + "privateMaintenanceScreenSteps": "Jakmile se připojíte, pokud stále vidíte tuto zprávu, možná je mezipaměť DNS vašeho prohlížeče stále nasměrována na starou adresu. Abyste to opravili: úplně zavřete a znovu otevřete tuto záložku nebo prohlížeč, a poté se vraťte na tuto stránku.", "maintenanceTime": "např. 2 hodiny, 1. listopadu v 17:00", "maintenanceEstimatedTimeDescription": "Kdy očekáváte, že údržba bude dokončena", "editDomain": "Upravit doménu", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Odstranit", "publicIpEndpoint": "Koncový bod", "lastTriggeredAt": "Poslední spouštěč", - "reject": "Odmítnout" + "reject": "Odmítnout", + "uptimeDaysAgo": "{count} days ago", + "uptimeToday": "Dnes", + "uptimeNoDataAvailable": "Dostupná žádná data", + "uptimeSuffix": "doba dostupnosti", + "uptimeDowntimeSuffix": "doba nedostupnosti", + "uptimeTooltipUptimeLabel": "Doba dostupnosti", + "uptimeTooltipDowntimeLabel": "Doba nedostupnosti", + "uptimeOngoing": "probíhá", + "uptimeNoMonitoringData": "Žádné monitorovací údaje", + "uptimeNoData": "Žádná data", + "uptimeMiniBarDown": "Nedostupný", + "uptimeSectionTitle": "Doba dostupnosti", + "uptimeSectionDescription": "Dostupnost za posledních {days} dní", + "uptimeAddAlert": "Přidat upozornění", + "uptimeViewAlerts": "Zobrazit upozornění", + "uptimeCreateEmailAlert": "Vytvořit e-mailové upozornění", + "uptimeAlertDescriptionSite": "Pošleme vám upozornění e-mailem, když bude tento web offline nebo se vrátí online.", + "uptimeAlertDescriptionResource": "Pošleme vám upozornění e-mailem, když bude tento zdroj offline nebo se vrátí online.", + "uptimeAlertNamePlaceholder": "Název upozornění", + "uptimeAdditionalEmails": "Další e-maily", + "uptimeCreateAlert": "Vytvořit upozornění", + "uptimeAlertNoRecipients": "Žádní příjemci", + "uptimeAlertNoRecipientsDescription": "Přidejte prosím alespoň jednoho uživatele, roli nebo e-mailovou adresu pro upozornění.", + "uptimeAlertCreated": "Upozornění vytvořeno", + "uptimeAlertCreatedDescription": "Budete upozorněni, když se tento stav změní.", + "uptimeAlertCreateFailed": "Nepodařilo se vytvořit upozornění", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Klíč", + "webhookHeaderValuePlaceholder": "Hodnota", + "alertLabel": "Upozornění", + "domainPickerWildcardSubdomainNotAllowed": "Zástupné poddomény nejsou povoleny.", + "domainPickerWildcardCertWarning": "Zástupné zdroje mohou vyžadovat dodatečnou konfiguraci pro správnou funkci.", + "domainPickerWildcardCertWarningLink": "Zjistit více", + "health": "Zdraví" } From 243da6379b941ea6819382205907d9efd4559282 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:04 -0700 Subject: [PATCH 067/131] New translations en-us.json (German) --- messages/de-DE.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/de-DE.json b/messages/de-DE.json index 07e5d93ac..30dd1509f 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Ich habe die Konfiguration kopiert", "searchSitesProgress": "Standorte durchsuchen...", "siteAdd": "Standort hinzufügen", + "sitesTableViewPublicResources": "Öffentliche Ressourcen anzeigen", + "sitesTableViewPrivateResources": "Private Ressourcen anzeigen", "siteInstallNewt": "Newt installieren", "siteInstallNewtDescription": "Installiere Newt auf deinem System.", "WgConfiguration": "WireGuard Konfiguration", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "Der Standort wurde aktualisiert.", "siteGeneralDescription": "Allgemeine Einstellungen für diesen Standort konfigurieren", "siteSettingDescription": "Standorteinstellungen konfigurieren", + "siteResourcesTab": "Ressourcen", + "siteResourcesNoneOnSite": "Diese Seite hat noch keine öffentlichen oder privaten Ressourcen.", + "siteResourcesSectionPublic": "Öffentliche Ressourcen", + "siteResourcesSectionPrivate": "Private Ressourcen", + "siteResourcesSectionPublicDescription": "Ressourcen, die extern über Domains oder Ports bereitgestellt werden.", + "siteResourcesSectionPrivateDescription": "Ressourcen, die in Ihrem privaten Netzwerk über die Seite verfügbar sind.", + "siteResourcesViewAllPublic": "Alle Ressourcen anzeigen", + "siteResourcesViewAllPrivate": "Alle Ressourcen anzeigen", + "siteResourcesDialogDescription": "Überblick über öffentliche und private Ressourcen, die mit dieser Seite verbunden sind.", + "siteResourcesShowMore": "Mehr anzeigen", + "siteResourcesPermissionDenied": "Sie haben keine Berechtigung, diese Ressourcen aufzulisten.", + "siteResourcesEmptyPublic": "Noch sind keine öffentlichen Ressourcen für diese Seite vorhanden.", + "siteResourcesEmptyPrivate": "Noch sind keine privaten Ressourcen mit dieser Seite verbunden.", + "siteResourcesHowToAccess": "Zugriffsmöglichkeiten", + "siteResourcesTargetsOnSite": "Ziele auf dieser Seite", "siteSetting": "{siteName} Einstellungen", "siteNewtTunnel": "Newt Standort (empfohlen)", "siteNewtTunnelDescription": "Einfachster Weg, einen Einstiegspunkt in jedes Netzwerk zu erstellen. Keine zusätzliche Einrichtung.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Gesundheits-Check-Status ändern", "alertingTriggerResourceHealthy": "Ressource gesund", "alertingTriggerResourceUnhealthy": "Ressource ungesund", + "alertingTriggerResourceDegraded": "Resource degraded", "alertingSearchHealthChecks": "Gesundheits-Checks suchen…", "alertingHealthChecksEmpty": "Keine Gesundheits-Checks verfügbar.", "alertingTriggerResourceToggle": "Ressourcenstatus ändern", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Erstellen Sie das initiale Server-Admin-Konto. Es kann nur einen Server-Admin geben. Sie können diese Anmeldedaten später immer ändern.", "createAdminAccount": "Admin-Konto erstellen", "setupErrorCreateAdmin": "Beim Erstellen des Server-Admin-Kontos ist ein Fehler aufgetreten.", - "certificateStatus": "Zertifikatsstatus", + "certificateStatus": "Zertifikat", "loading": "Laden", "loadingAnalytics": "Analytik wird geladen", "restart": "Neustart", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Gesundheits-Check konfigurieren", "configureHealthCheckDescription": "Richten Sie die Gesundheitsüberwachung für {target} ein", "enableHealthChecks": "Gesundheits-Checks aktivieren", + "healthCheckDisabledStateDescription": "Wenn deaktiviert, führt die Seite keine Gesundheitsprüfungen durch und der Zustand wird als unbekannt betrachtet.", "enableHealthChecksDescription": "Überwachen Sie die Gesundheit dieses Ziels. Bei Bedarf können Sie einen anderen Endpunkt als das Ziel überwachen.", "healthScheme": "Methode", "healthSelectScheme": "Methode auswählen", @@ -1947,6 +1966,8 @@ "httpMethod": "HTTP-Methode", "selectHttpMethod": "HTTP-Methode auswählen", "domainPickerSubdomainLabel": "Subdomain", + "domainPickerWildcard": "Platzhalter", + "domainPickerWildcardPaidOnly": "Wildcard-Subdomains sind ein kostenpflichtiges Feature. Bitte upgraden Sie, um auf dieses Feature zuzugreifen.", "domainPickerBaseDomainLabel": "Basisdomain", "domainPickerSearchDomains": "Domains suchen...", "domainPickerNoDomainsFound": "Keine Domains gefunden", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Diese Adresse ist Teil des Utility-Subnetzes der Organisation. Sie wird verwendet, um Alias-Einträge mit interner DNS-Auflösung aufzulösen.", "resourcesTableClients": "Clients", "resourcesTableAndOnlyAccessibleInternally": "und sind nur intern zugänglich, wenn mit einem Client verbunden.", - "resourcesTableNoTargets": "Keine Ziele", "resourcesTableHealthy": "Gesund", "resourcesTableDegraded": "Degradiert", - "resourcesTableOffline": "Offline", + "resourcesTableUnhealthy": "Ungesund", "resourcesTableUnknown": "Unbekannt", "resourcesTableNotMonitored": "Nicht überwacht", + "resourcesTableNoTargets": "Keine Ziele", "editInternalResourceDialogEditClientResource": "Private Ressource bearbeiten", "editInternalResourceDialogUpdateResourceProperties": "Ressourcen-Konfiguration und Zugriffssteuerung für {resourceName} aktualisieren", "editInternalResourceDialogResourceProperties": "Ressourceneigenschaften", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Verifiziert", "domainPickerUnverified": "Nicht verifiziert", "domainPickerManual": "Manuell", - "domainPickerInvalidSubdomainStructure": "Diese Subdomain enthält ungültige Zeichen oder Struktur. Sie wird beim Speichern automatisch bereinigt.", + "domainPickerInvalidSubdomainStructure": "Ungültige Zeichen werden beim Speichern bereinigt.", "domainPickerError": "Fehler", "domainPickerErrorLoadDomains": "Fehler beim Laden der Organisations-Domains", "domainPickerErrorCheckAvailability": "Fehler beim Prüfen der Domain-Verfügbarkeit", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Clients hinzufügen", "editInternalResourceDialogDestinationLabel": "Ziel", "editInternalResourceDialogDestinationDescription": "Geben Sie die Zieladresse für die interne Ressource an. Dies kann ein Hostname, eine IP-Adresse oder ein CIDR-Bereich sein, abhängig vom gewählten Modus. Legen Sie optional einen internen DNS-Alias für eine vereinfachte Identifizierung fest.", + "internalResourceFormMultiSiteRoutingHelp": "Durch die Auswahl mehrerer Seiten wird ein ausfallsicheres Routing und Failover für hohe Verfügbarkeit ermöglicht.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Mehr erfahren", "editInternalResourceDialogPortRestrictionsDescription": "Den Zugriff auf bestimmte TCP/UDP-Ports beschränken oder alle Ports erlauben/blockieren.", "createInternalResourceDialogHttpConfiguration": "HTTP-Konfiguration", "createInternalResourceDialogHttpConfigurationDescription": "Wählen Sie die Domain, die Clients verwenden, um über HTTP oder HTTPS auf diese Ressource zuzugreifen.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Geschätzte Abschlusszeit (Optional)", "privateMaintenanceScreenTitle": "Privater Platzhalterschirm", "privateMaintenanceScreenMessage": "Diese Domain wird auf einer privaten Ressource verwendet. Bitte verbinden Sie sich mit dem Pangolin-Client, um auf diese Ressource zuzugreifen.", + "privateMaintenanceScreenSteps": "Sobald verbunden, wenn Sie diese Nachricht weiterhin sehen, zeigt der DNS-Cache Ihres Browsers möglicherweise noch auf die alte Adresse. Um dies zu beheben: Schließen Sie diesen Tab vollständig und öffnen Sie ihn erneut oder starten Sie Ihren Browser neu und rufen Sie dann diese Seite erneut auf.", "maintenanceTime": "z.B.: 2 Stunden, Nov 1 um 17:00 Uhr", "maintenanceEstimatedTimeDescription": "Wann Sie den Abschluss der Wartung erwarten", "editDomain": "Domain bearbeiten", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Löschen", "publicIpEndpoint": "Endpunkt", "lastTriggeredAt": "Letzter Auslöser", - "reject": "Zurückweisen" + "reject": "Zurückweisen", + "uptimeDaysAgo": "vor {count} Tagen", + "uptimeToday": "Heute", + "uptimeNoDataAvailable": "Keine Daten verfügbar", + "uptimeSuffix": "Betriebzeit", + "uptimeDowntimeSuffix": "Ausfallzeit", + "uptimeTooltipUptimeLabel": "Betriebszeit", + "uptimeTooltipDowntimeLabel": "Ausfallzeit", + "uptimeOngoing": "im Gange", + "uptimeNoMonitoringData": "Keine Überwachungsdaten", + "uptimeNoData": "Keine Daten", + "uptimeMiniBarDown": "Unten", + "uptimeSectionTitle": "Betriebszeit", + "uptimeSectionDescription": "Verfügbarkeit in den letzten {days} Tagen", + "uptimeAddAlert": "Warnmeldung hinzufügen", + "uptimeViewAlerts": "Warnungen anzeigen", + "uptimeCreateEmailAlert": "E-Mail Alarm erstellen", + "uptimeAlertDescriptionSite": "Werde per E-Mail benachrichtigt, wenn diese Seite offline oder wieder online ist.", + "uptimeAlertDescriptionResource": "Werde per E-Mail benachrichtigt, wenn diese Ressource offline oder wieder online ist.", + "uptimeAlertNamePlaceholder": "Alarmname", + "uptimeAdditionalEmails": "Zusätzliche E-Mails", + "uptimeCreateAlert": "Alarm erstellen", + "uptimeAlertNoRecipients": "Kein Empfänger", + "uptimeAlertNoRecipientsDescription": "Bitte fügen Sie mindestens einen Benutzer, eine Rolle oder eine E-Mail zur Benachrichtigung hinzu.", + "uptimeAlertCreated": "Alarm erstellt", + "uptimeAlertCreatedDescription": "Sie werden benachrichtigt, wenn dieser Status sich ändert", + "uptimeAlertCreateFailed": "Fehler beim Erstellen der Benachrichtigung", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Schlüssel", + "webhookHeaderValuePlaceholder": "Wert", + "alertLabel": "Alarm", + "domainPickerWildcardSubdomainNotAllowed": "Wildcard-Subdomains sind nicht erlaubt.", + "domainPickerWildcardCertWarning": "Wildcard-Ressourcen erfordern möglicherweise zusätzliche Konfigurationen, um ordnungsgemäß zu funktionieren.", + "domainPickerWildcardCertWarningLink": "Mehr erfahren", + "health": "Gesundheit" } From 926fe5e474584c305b0b177a856d76fb2101c739 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:06 -0700 Subject: [PATCH 068/131] New translations en-us.json (Italian) --- messages/it-IT.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/it-IT.json b/messages/it-IT.json index e1e3a586e..4c5ba6f12 100644 --- a/messages/it-IT.json +++ b/messages/it-IT.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Ho copiato la configurazione", "searchSitesProgress": "Cerca siti...", "siteAdd": "Aggiungi Sito", + "sitesTableViewPublicResources": "Visualizza Risorse Pubbliche", + "sitesTableViewPrivateResources": "Visualizza Risorse Private", "siteInstallNewt": "Installa Newt", "siteInstallNewtDescription": "Esegui Newt sul tuo sistema", "WgConfiguration": "Configurazione WireGuard", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "Il sito è stato aggiornato.", "siteGeneralDescription": "Configura le impostazioni generali per questo sito", "siteSettingDescription": "Configura le impostazioni del sito", + "siteResourcesTab": "Risorse", + "siteResourcesNoneOnSite": "Questo sito non ha ancora risorse pubbliche o private.", + "siteResourcesSectionPublic": "Risorse Pubbliche", + "siteResourcesSectionPrivate": "Risorse Private", + "siteResourcesSectionPublicDescription": "Risorse esposte esternamente attraverso domini o porte.", + "siteResourcesSectionPrivateDescription": "Risorse disponibili sulla tua rete privata tramite il sito.", + "siteResourcesViewAllPublic": "Visualizza tutte le risorse", + "siteResourcesViewAllPrivate": "Visualizza tutte le risorse", + "siteResourcesDialogDescription": "Panoramica delle risorse pubbliche e private associate a questo sito.", + "siteResourcesShowMore": "Mostra Altro", + "siteResourcesPermissionDenied": "Non hai il permesso di elencare queste risorse.", + "siteResourcesEmptyPublic": "Ancora nessuna risorsa pubblica punta a questo sito.", + "siteResourcesEmptyPrivate": "Ancora nessuna risorsa privata è associata a questo sito.", + "siteResourcesHowToAccess": "Come accedere", + "siteResourcesTargetsOnSite": "Obiettivi su questo sito", "siteSetting": "Impostazioni del sito {siteName}", "siteNewtTunnel": "Nuovo Sito (Consigliato)", "siteNewtTunnelDescription": "Modo più semplice per creare un entrypoint in qualsiasi rete. Nessuna configurazione aggiuntiva.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "I cambiamenti di stato del controllo di salute", "alertingTriggerResourceHealthy": "Risorsa in buona salute", "alertingTriggerResourceUnhealthy": "Risorsa in cattiva salute", + "alertingTriggerResourceDegraded": "Risorsa degradata", "alertingSearchHealthChecks": "Cerca controlli di salute…", "alertingHealthChecksEmpty": "Nessun controllo di salute disponibile.", "alertingTriggerResourceToggle": "Variazioni di stato della risorsa", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Crea l'account amministratore del server iniziale. Può esistere solo un amministratore del server. È sempre possibile modificare queste credenziali in seguito.", "createAdminAccount": "Crea Account Admin", "setupErrorCreateAdmin": "Si è verificato un errore durante la creazione dell'account amministratore del server.", - "certificateStatus": "Stato del Certificato", + "certificateStatus": "Certificato", "loading": "Caricamento", "loadingAnalytics": "Caricamento Delle Analisi", "restart": "Riavvia", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Configura Controllo Salute", "configureHealthCheckDescription": "Imposta il monitoraggio della salute per {target}", "enableHealthChecks": "Abilita i Controlli di Salute", + "healthCheckDisabledStateDescription": "Quando disabilitato, il sito non eseguirà controlli di integrità e lo stato sarà considerato sconosciuto.", "enableHealthChecksDescription": "Monitorare lo stato di salute di questo obiettivo. Se necessario, è possibile monitorare un endpoint diverso da quello del bersaglio.", "healthScheme": "Metodo", "healthSelectScheme": "Seleziona Metodo", @@ -1947,6 +1966,8 @@ "httpMethod": "Metodo HTTP", "selectHttpMethod": "Seleziona metodo HTTP", "domainPickerSubdomainLabel": "Sottodominio", + "domainPickerWildcard": "Jolly", + "domainPickerWildcardPaidOnly": "Sotto-domini wildcard sono una funzione a pagamento. Si prega di aggiornare per accedere a questa funzione.", "domainPickerBaseDomainLabel": "Dominio Base", "domainPickerSearchDomains": "Cerca domini...", "domainPickerNoDomainsFound": "Nessun dominio trovato", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Questo indirizzo fa parte della subnet di utilità dell'organizzazione. È usato per risolvere i record alias usando la risoluzione DNS interna.", "resourcesTableClients": "Client", "resourcesTableAndOnlyAccessibleInternally": "e sono accessibili solo internamente quando connessi con un client.", - "resourcesTableNoTargets": "Nessun obiettivo", "resourcesTableHealthy": "Sano", "resourcesTableDegraded": "Degraded", - "resourcesTableOffline": "Offline", + "resourcesTableUnhealthy": "Non Sano", "resourcesTableUnknown": "Sconosciuto", "resourcesTableNotMonitored": "Non monitorato", + "resourcesTableNoTargets": "Nessun obiettivo", "editInternalResourceDialogEditClientResource": "Modifica Risorse Private", "editInternalResourceDialogUpdateResourceProperties": "Aggiorna la configurazione delle risorse e i controlli di accesso per {resourceName}", "editInternalResourceDialogResourceProperties": "Proprietà della Risorsa", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Verificato", "domainPickerUnverified": "Non Verificato", "domainPickerManual": "Manuale", - "domainPickerInvalidSubdomainStructure": "Questo sottodominio contiene caratteri o struttura non validi. Sarà sanificato automaticamente quando si salva.", + "domainPickerInvalidSubdomainStructure": "I caratteri non validi saranno sanitizzati quando salvati.", "domainPickerError": "Errore", "domainPickerErrorLoadDomains": "Impossibile caricare i domini dell'organizzazione", "domainPickerErrorCheckAvailability": "Impossibile verificare la disponibilità del dominio", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Aggiungi Clienti", "editInternalResourceDialogDestinationLabel": "Destinazione", "editInternalResourceDialogDestinationDescription": "Specifica l'indirizzo di destinazione per la risorsa interna. Può essere un hostname, indirizzo IP o un intervallo CIDR a seconda della modalità selezionata. Opzionalmente imposta un alias DNS interno per una più facile identificazione.", + "internalResourceFormMultiSiteRoutingHelp": "Selezionare più siti consente un routing resiliente e Failover per alta disponibilità.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Scopri di più", "editInternalResourceDialogPortRestrictionsDescription": "Limita l'accesso a porte TCP/UDP specifiche o consenti/blocca tutte le porte.", "createInternalResourceDialogHttpConfiguration": "Configurazione HTTP", "createInternalResourceDialogHttpConfigurationDescription": "Scegli il dominio che i clienti utilizzeranno per accedere a questa risorsa tramite HTTP o HTTPS.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Tempo di Completamento Stimato (Opzionale)", "privateMaintenanceScreenTitle": "Schermo segnaposto privato", "privateMaintenanceScreenMessage": "Questo dominio è utilizzato su una risorsa privata. Connettiti usando il client Pangolin per accedere a questa risorsa.", + "privateMaintenanceScreenSteps": "Una volta connesso, se ancora visualizzi questo messaggio, la cache DNS del tuo browser potrebbe ancora puntare al vecchio indirizzo. Per risolvere: chiudi e riapri completamente questa scheda o il tuo browser, quindi torna su questa pagina.", "maintenanceTime": "es. 2 ore, 1 novembre alle 17:00", "maintenanceEstimatedTimeDescription": "Quando prevedi che la manutenzione sarà completata", "editDomain": "Modifica Dominio", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Elimina", "publicIpEndpoint": "Endpoint", "lastTriggeredAt": "Ultimo trigger", - "reject": "Rifiuta" + "reject": "Rifiuta", + "uptimeDaysAgo": "{count} giorni fa", + "uptimeToday": "Oggi", + "uptimeNoDataAvailable": "Nessun dato disponibile", + "uptimeSuffix": "tempo di attività", + "uptimeDowntimeSuffix": "tempo di inattività", + "uptimeTooltipUptimeLabel": "Tempo di attività", + "uptimeTooltipDowntimeLabel": "Tempo di inattività", + "uptimeOngoing": "in corso", + "uptimeNoMonitoringData": "Nessun dato di monitoraggio", + "uptimeNoData": "Nessun dato", + "uptimeMiniBarDown": "Giù", + "uptimeSectionTitle": "Tempo di attività", + "uptimeSectionDescription": "Disponibilità negli ultimi {days} giorni", + "uptimeAddAlert": "Aggiungi Avviso", + "uptimeViewAlerts": "Visualizza Avvisi", + "uptimeCreateEmailAlert": "Crea Avviso Email", + "uptimeAlertDescriptionSite": "Ricevi notifica via email quando questo sito va offline o torna online.", + "uptimeAlertDescriptionResource": "Ricevi notifica via email quando questa risorsa va offline o torna online.", + "uptimeAlertNamePlaceholder": "Nome avviso", + "uptimeAdditionalEmails": "Email aggiuntive", + "uptimeCreateAlert": "Crea Avviso", + "uptimeAlertNoRecipients": "Nessun destinatario", + "uptimeAlertNoRecipientsDescription": "Si prega di aggiungere almeno un utente, ruolo o e-mail da notificare.", + "uptimeAlertCreated": "Avviso creato", + "uptimeAlertCreatedDescription": "Riceverai una notifica quando questo cambia stato.", + "uptimeAlertCreateFailed": "Errore nella creazione dell'avviso", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Chiave", + "webhookHeaderValuePlaceholder": "Valore", + "alertLabel": "Avviso", + "domainPickerWildcardSubdomainNotAllowed": "I sottodomini wildcard non sono permessi.", + "domainPickerWildcardCertWarning": "Le risorse wildcard potrebbero richiedere configurazioni aggiuntive per funzionare correttamente.", + "domainPickerWildcardCertWarningLink": "Scopri di più", + "health": "Salute" } From 3cb1cd9f2fea875b27b4c4d4fbc89c10f7396dbc Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:07 -0700 Subject: [PATCH 069/131] New translations en-us.json (Korean) --- messages/ko-KR.json | 70 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 6 deletions(-) diff --git a/messages/ko-KR.json b/messages/ko-KR.json index c3e08dca4..d6936cecf 100644 --- a/messages/ko-KR.json +++ b/messages/ko-KR.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "구성을 복사했습니다.", "searchSitesProgress": "사이트 검색...", "siteAdd": "사이트 추가", + "sitesTableViewPublicResources": "공용 리소스 보기", + "sitesTableViewPrivateResources": "개인 리소스 보기", "siteInstallNewt": "Newt 설치", "siteInstallNewtDescription": "시스템에서 Newt 실행하기", "WgConfiguration": "WireGuard 구성", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "사이트가 업데이트되었습니다.", "siteGeneralDescription": "이 사이트에 대한 일반 설정을 구성하세요.", "siteSettingDescription": "사이트에서 설정을 구성하세요.", + "siteResourcesTab": "리소스", + "siteResourcesNoneOnSite": "이 사이트에는 아직 공용 또는 개인 리소스가 없습니다.", + "siteResourcesSectionPublic": "공용 리소스", + "siteResourcesSectionPrivate": "개인 리소스", + "siteResourcesSectionPublicDescription": "도메인이나 포트를 통해 외부에 노출되는 리소스.", + "siteResourcesSectionPrivateDescription": "사이트를 통해 개인 네트워크에서 사용할 수 있는 리소스.", + "siteResourcesViewAllPublic": "모든 리소스 보기", + "siteResourcesViewAllPrivate": "모든 리소스 보기", + "siteResourcesDialogDescription": "이 사이트와 연관된 공용 및 개인 리소스의 개요.", + "siteResourcesShowMore": "더 보기", + "siteResourcesPermissionDenied": "이 리소스를 나열할 권한이 없습니다.", + "siteResourcesEmptyPublic": "이 사이트에는 아직 대상 공용 리소스가 없습니다.", + "siteResourcesEmptyPrivate": "이 사이트와 연결된 개인 리소스가 아직 없습니다.", + "siteResourcesHowToAccess": "액세스 방법", + "siteResourcesTargetsOnSite": "이 사이트의 대상", "siteSetting": "{siteName} 설정", "siteNewtTunnel": "뉴트 사이트 (추천)", "siteNewtTunnelDescription": "네트워크의 진입점을 생성하는 가장 쉬운 방법입니다. 추가 설정이 필요 없습니다.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "상태 확인 상태 변경", "alertingTriggerResourceHealthy": "리소스 정상", "alertingTriggerResourceUnhealthy": "리소스 비정상", + "alertingTriggerResourceDegraded": "리소스 열화", "alertingSearchHealthChecks": "상태 확인 검색…", "alertingHealthChecksEmpty": "사용 가능한 상태 확인이 없습니다.", "alertingTriggerResourceToggle": "리소스 상태 변경", @@ -1493,7 +1511,7 @@ "standaloneHcEditTitle": "상태 확인 편집", "standaloneHcDescription": "알림 규칙에 사용할 HTTP 또는 TCP 상태 확인을 구성하세요.", "standaloneHcNameLabel": "이름", - "standaloneHcNamePlaceholder": "My HTTP Monitor", + "standaloneHcNamePlaceholder": "나의 HTTP 모니터", "standaloneHcDeleteTitle": "상태 확인 삭제", "standaloneHcDeleteQuestion": "이 상태 확인을 삭제하겠습니까.", "standaloneHcDeleted": "상태 확인 삭제됨", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "초기 서버 관리자 계정을 생성하세요. 서버 관리자 계정은 하나만 존재할 수 있습니다. 이러한 자격 증명은 나중에 언제든지 변경할 수 있습니다.", "createAdminAccount": "관리자 계정 생성", "setupErrorCreateAdmin": "서버 관리자 계정을 생성하는 동안 오류가 발생했습니다.", - "certificateStatus": "인증서 상태", + "certificateStatus": "인증서", "loading": "로딩 중", "loadingAnalytics": "분석 로딩 중", "restart": "재시작", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "상태 확인 설정", "configureHealthCheckDescription": "{target}에 대한 상태 모니터링 설정", "enableHealthChecks": "상태 확인 활성화", + "healthCheckDisabledStateDescription": "비활성화되면 이 사이트가 상태 확인을 수행하지 않으며 상태가 알 수 없는 것으로 간주됩니다.", "enableHealthChecksDescription": "이 대상을 모니터링하여 건강 상태를 확인하세요. 필요에 따라 대상과 다른 엔드포인트를 모니터링할 수 있습니다.", "healthScheme": "방법", "healthSelectScheme": "방법 선택", @@ -1947,6 +1966,8 @@ "httpMethod": "HTTP 메소드", "selectHttpMethod": "HTTP 메소드 선택", "domainPickerSubdomainLabel": "서브도메인", + "domainPickerWildcard": "와일드카드", + "domainPickerWildcardPaidOnly": "와일드카드 서브도메인은 유료 기능입니다. 이 기능에 액세스하려면 업그레이드하세요.", "domainPickerBaseDomainLabel": "기본 도메인", "domainPickerSearchDomains": "도메인 검색...", "domainPickerNoDomainsFound": "찾을 수 없는 도메인이 없습니다", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "이 주소는 조직의 유틸리티 서브넷의 일부로, 내부 DNS 해석을 사용하여 별칭 레코드를 해석하는 데 사용됩니다.", "resourcesTableClients": "클라이언트", "resourcesTableAndOnlyAccessibleInternally": "클라이언트와 연결되었을 때만 내부적으로 접근 가능합니다.", - "resourcesTableNoTargets": "대상 없음", "resourcesTableHealthy": "정상", "resourcesTableDegraded": "저하됨", - "resourcesTableOffline": "오프라인", + "resourcesTableUnhealthy": "비정상", "resourcesTableUnknown": "알 수 없음", "resourcesTableNotMonitored": "모니터링되지 않음", + "resourcesTableNoTargets": "대상 없음", "editInternalResourceDialogEditClientResource": "비공개 리소스 수정", "editInternalResourceDialogUpdateResourceProperties": "{resourceName}의 리소스 속성과 대상 구성을 업데이트하세요", "editInternalResourceDialogResourceProperties": "리소스 속성", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "검증됨", "domainPickerUnverified": "검증되지 않음", "domainPickerManual": "수동", - "domainPickerInvalidSubdomainStructure": "이 하위 도메인은 잘못된 문자 또는 구조를 포함하고 있습니다. 저장 시 자동으로 정리됩니다.", + "domainPickerInvalidSubdomainStructure": "잘못된 문자는 저장 시 새니타이즈됩니다.", "domainPickerError": "오류", "domainPickerErrorLoadDomains": "조직 도메인 로드 실패", "domainPickerErrorCheckAvailability": "도메인 가용성 확인 실패", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "클라이언트 추가", "editInternalResourceDialogDestinationLabel": "대상지", "editInternalResourceDialogDestinationDescription": "내부 리소스의 목적지 주소를 지정하세요. 선택한 모드에 따라 이 주소는 호스트명, IP 주소, 또는 CIDR 범위가 될 수 있습니다. 더욱 쉽게 식별할 수 있도록 내부 DNS 별칭을 설정할 수 있습니다.", + "internalResourceFormMultiSiteRoutingHelp": "다중 사이트를 선택하면 높은 가용성을 위해 회복력 있는 라우팅 및 페일오버가 가능해집니다.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "자세히 알아보기", "editInternalResourceDialogPortRestrictionsDescription": "특정 TCP/UDP 포트에 대한 접근을 제한하거나 모든 포트를 허용/차단하십시오.", "createInternalResourceDialogHttpConfiguration": "HTTP 구성", "createInternalResourceDialogHttpConfigurationDescription": "이 리소스에 HTTP 또는 HTTPS로 도달하기 위한 도메인을 선택하세요.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "예상 완료 시간(선택 사항)", "privateMaintenanceScreenTitle": "프라이빗 플레이스홀더 화면", "privateMaintenanceScreenMessage": "이 도메인은 개인 리소스에서 사용 중입니다. Pangolin 클라이언트를 사용하여 이 리소스에 액세스하세요.", + "privateMaintenanceScreenSteps": "연결된 후에도 이 메시지가 보이면 브라우저의 DNS 캐시가 여전히 이전 주소를 가리킬 수 있습니다. 이를 해결하려면 이 탭이나 브라우저를 완전히 닫고 다시 열고 이 페이지로 돌아가세요.", "maintenanceTime": "예: 2시간, 11월 1일 오후 5시", "maintenanceEstimatedTimeDescription": "유지보수가 완료될 것으로 예상되는 시간", "editDomain": "도메인 수정", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "삭제", "publicIpEndpoint": "엔드포인트", "lastTriggeredAt": "마지막 트리거", - "reject": "거부" + "reject": "거부", + "uptimeDaysAgo": "{count}일 전", + "uptimeToday": "오늘", + "uptimeNoDataAvailable": "데이터가 없습니다", + "uptimeSuffix": "가동 시간", + "uptimeDowntimeSuffix": "다운타임", + "uptimeTooltipUptimeLabel": "가동 시간", + "uptimeTooltipDowntimeLabel": "다운타임", + "uptimeOngoing": "진행 중", + "uptimeNoMonitoringData": "모니터링 데이터 없음", + "uptimeNoData": "데이터 없음", + "uptimeMiniBarDown": "중단됨", + "uptimeSectionTitle": "가동 시간", + "uptimeSectionDescription": "지난 {days}일 동안의 가용성", + "uptimeAddAlert": "알림 추가", + "uptimeViewAlerts": "알림 보기", + "uptimeCreateEmailAlert": "이메일 알림 생성", + "uptimeAlertDescriptionSite": "이 사이트가 오프라인 되거나 다시 온라인 될 때 이메일로 알림을 받습니다.", + "uptimeAlertDescriptionResource": "이 리소스가 오프라인 되거나 다시 온라인 될 때 이메일로 알림을 받습니다.", + "uptimeAlertNamePlaceholder": "알림 이름", + "uptimeAdditionalEmails": "추가 이메일", + "uptimeCreateAlert": "알림 생성", + "uptimeAlertNoRecipients": "수신자 없음", + "uptimeAlertNoRecipientsDescription": "통지를 받을 사용자, 역할 또는 이메일을 최소 한 개 추가하세요.", + "uptimeAlertCreated": "알림 생성됨", + "uptimeAlertCreatedDescription": "상태가 변경되면 통지를 받습니다.", + "uptimeAlertCreateFailed": "알림 생성 실패", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "키", + "webhookHeaderValuePlaceholder": "값", + "alertLabel": "알림", + "domainPickerWildcardSubdomainNotAllowed": "와일드카드 서브도메인은 허용되지 않습니다.", + "domainPickerWildcardCertWarning": "와일드카드 리소스는 올바르게 작동하려면 추가 구성이 필요할 수 있습니다.", + "domainPickerWildcardCertWarningLink": "자세히 알아보기", + "health": "건강" } From d33c704f76a99b459144976fb367e984b90491f7 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:09 -0700 Subject: [PATCH 070/131] New translations en-us.json (Dutch) --- messages/nl-NL.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/nl-NL.json b/messages/nl-NL.json index 855ae603d..6dc3cd158 100644 --- a/messages/nl-NL.json +++ b/messages/nl-NL.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Ik heb de configuratie gekopieerd", "searchSitesProgress": "Sites zoeken...", "siteAdd": "Site toevoegen", + "sitesTableViewPublicResources": "Openbare bronnen bekijken", + "sitesTableViewPrivateResources": "Privébronnen bekijken", "siteInstallNewt": "Installeer Newt", "siteInstallNewtDescription": "Laat Newt draaien op uw systeem", "WgConfiguration": "WireGuard Configuratie", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "De site is bijgewerkt.", "siteGeneralDescription": "Algemene instellingen voor deze site configureren", "siteSettingDescription": "Configureer de instellingen van de site", + "siteResourcesTab": "Bronnen", + "siteResourcesNoneOnSite": "Deze site heeft nog geen openbare of privébronnen.", + "siteResourcesSectionPublic": "Openbare bronnen", + "siteResourcesSectionPrivate": "Privébronnen", + "siteResourcesSectionPublicDescription": "Bronnen extern blootgesteld via domeinen of poorten.", + "siteResourcesSectionPrivateDescription": "Bronnen beschikbaar op uw privénetwerk via de site.", + "siteResourcesViewAllPublic": "Bekijk alle bronnen", + "siteResourcesViewAllPrivate": "Bekijk alle bronnen", + "siteResourcesDialogDescription": "Overzicht van openbare en privébronnen die geassocieerd zijn met deze site.", + "siteResourcesShowMore": "Meer weergeven", + "siteResourcesPermissionDenied": "U heeft geen toestemming om deze bronnen te vermelden.", + "siteResourcesEmptyPublic": "Geen openbare bronnen richten zich nog op deze site.", + "siteResourcesEmptyPrivate": "Er zijn nog geen privébronnen gekoppeld aan deze site.", + "siteResourcesHowToAccess": "Hoe te openen", + "siteResourcesTargetsOnSite": "Doelen op deze site", "siteSetting": "{siteName} instellingen", "siteNewtTunnel": "Nieuwste site (Aanbevolen)", "siteNewtTunnelDescription": "Makkelijkste manier om een ingangspunt in een netwerk te maken. Geen extra opzet.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Gezondheidscontrole status verandert", "alertingTriggerResourceHealthy": "Bron gezond", "alertingTriggerResourceUnhealthy": "Bron ongezond", + "alertingTriggerResourceDegraded": "Bron gedegradeerd", "alertingSearchHealthChecks": "Zoek gezondheidscontroles…", "alertingHealthChecksEmpty": "Geen gezondheidscontroles beschikbaar.", "alertingTriggerResourceToggle": "Bronstatus wijzigt", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Maak het eerste serverbeheeraccount aan. Er kan slechts één serverbeheerder bestaan. U kunt deze inloggegevens later altijd wijzigen.", "createAdminAccount": "Maak een beheeraccount aan", "setupErrorCreateAdmin": "Er is een fout opgetreden bij het maken van het serverbeheerdersaccount.", - "certificateStatus": "Certificaatstatus", + "certificateStatus": "Certificaat", "loading": "Bezig met laden", "loadingAnalytics": "Laden van Analytics", "restart": "Herstarten", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Configureer Gezondheidscontrole", "configureHealthCheckDescription": "Stel gezondheid monitor voor {target} in", "enableHealthChecks": "Inschakelen Gezondheidscontroles", + "healthCheckDisabledStateDescription": "Wanneer uitgeschakeld, zal de site geen gezondheidscontroles uitvoeren en wordt de staat als onbekend beschouwd.", "enableHealthChecksDescription": "Controleer de gezondheid van dit doel. U kunt een ander eindpunt monitoren dan het doel indien vereist.", "healthScheme": "Methode", "healthSelectScheme": "Selecteer methode", @@ -1947,6 +1966,8 @@ "httpMethod": "HTTP-methode", "selectHttpMethod": "Selecteer HTTP-methode", "domainPickerSubdomainLabel": "Subdomein", + "domainPickerWildcard": "Wildcard", + "domainPickerWildcardPaidOnly": "Wildcard-subdomeinen zijn een betaalde functie. Upgrade om deze functie te gebruiken.", "domainPickerBaseDomainLabel": "Basisdomein", "domainPickerSearchDomains": "Zoek domeinen...", "domainPickerNoDomainsFound": "Geen domeinen gevonden", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Dit adres is onderdeel van het hulpprogramma subnet van de organisatie. Het wordt gebruikt om aliasrecords op te lossen met behulp van interne DNS-resolutie.", "resourcesTableClients": "Clienten", "resourcesTableAndOnlyAccessibleInternally": "en zijn alleen intern toegankelijk wanneer verbonden met een client.", - "resourcesTableNoTargets": "Geen doelen", "resourcesTableHealthy": "Gezond", "resourcesTableDegraded": "Verminderde", - "resourcesTableOffline": "Offline", + "resourcesTableUnhealthy": "Ongezond", "resourcesTableUnknown": "onbekend", "resourcesTableNotMonitored": "Niet gecontroleerd", + "resourcesTableNoTargets": "Geen doelen", "editInternalResourceDialogEditClientResource": "Privépagina bewerken", "editInternalResourceDialogUpdateResourceProperties": "Update de resource configuratie en access control voor {resourceName}", "editInternalResourceDialogResourceProperties": "Bron eigenschappen", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Geverifieerd", "domainPickerUnverified": "Ongeverifieerd", "domainPickerManual": "Handleiding", - "domainPickerInvalidSubdomainStructure": "Dit subdomein bevat ongeldige tekens of structuur. Het zal automatisch worden gesaneerd wanneer u opslaat.", + "domainPickerInvalidSubdomainStructure": "Ongeldige tekens worden gesaneerd bij het opslaan.", "domainPickerError": "Foutmelding", "domainPickerErrorLoadDomains": "Fout bij het laden van organisatiedomeinen", "domainPickerErrorCheckAvailability": "Kan domein beschikbaarheid niet controleren", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Clienten toevoegen", "editInternalResourceDialogDestinationLabel": "Bestemming", "editInternalResourceDialogDestinationDescription": "Specificeer het bestemmingsadres voor de interne bron. Dit kan een hostnaam, IP-adres of CIDR-bereik zijn, afhankelijk van de geselecteerde modus. Stel optioneel een interne DNS-alias in voor eenvoudigere identificatie.", + "internalResourceFormMultiSiteRoutingHelp": "Selecteren van meerdere sites maakt veerkrachtige routing en failover mogelijk voor hoge beschikbaarheid.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Meer informatie", "editInternalResourceDialogPortRestrictionsDescription": "Beperk toegang tot specifieke TCP/UDP-poorten of sta alle poorten toe/blokkeer.", "createInternalResourceDialogHttpConfiguration": "HTTP-configuratie", "createInternalResourceDialogHttpConfigurationDescription": "Kies het domein dat cliënten zullen gebruiken om deze bron via HTTP of HTTPS te bereiken.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Geschatte voltooiingstijd (optioneel)", "privateMaintenanceScreenTitle": "Privéscherm maintenance screen", "privateMaintenanceScreenMessage": "Dit domein wordt gebruikt op een privébron. Verbind met de Pangolin client om toegang te krijgen tot deze bron.", + "privateMaintenanceScreenSteps": "Eenmaal verbonden, als u dit bericht nog steeds ziet, kan het DNS-cache van uw browser nog steeds naar het oude adres wijzen. Om dit te corrigeren: sluit en heropen dit tabblad, of uw browser, dan navigeer weer naar deze pagina.", "maintenanceTime": "bijv. 2 uur, 1 nov om 17:00", "maintenanceEstimatedTimeDescription": "Wanneer u verwacht dat het onderhoud voltooid is", "editDomain": "Domein bewerken", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Verwijderen", "publicIpEndpoint": "Eindpunt", "lastTriggeredAt": "Laatste Trigger", - "reject": "Afwijzen" + "reject": "Afwijzen", + "uptimeDaysAgo": "{count} days ago", + "uptimeToday": "Vandaag", + "uptimeNoDataAvailable": "Geen gegevens beschikbaar", + "uptimeSuffix": "werktijd", + "uptimeDowntimeSuffix": "uitvaltijd", + "uptimeTooltipUptimeLabel": "Werktijd", + "uptimeTooltipDowntimeLabel": "Uitvaltijd", + "uptimeOngoing": "lopend", + "uptimeNoMonitoringData": "Geen monitoringgegevens", + "uptimeNoData": "Geen gegevens", + "uptimeMiniBarDown": "Onder", + "uptimeSectionTitle": "Werktijd", + "uptimeSectionDescription": "Beschikbaarheid over de laatste {days} dagen", + "uptimeAddAlert": "Alarm toevoegen", + "uptimeViewAlerts": "Meldingen bekijken", + "uptimeCreateEmailAlert": "E-mailalert aanmaken", + "uptimeAlertDescriptionSite": "Ontvang een e-mailbericht wanneer deze site offline gaat of weer online komt.", + "uptimeAlertDescriptionResource": "Ontvang een e-mailbericht wanneer deze bron offline gaat of weer online komt.", + "uptimeAlertNamePlaceholder": "Waarschuwingsnaam", + "uptimeAdditionalEmails": "Extra e-mails", + "uptimeCreateAlert": "Alarm aanmaken", + "uptimeAlertNoRecipients": "Geen ontvangers", + "uptimeAlertNoRecipientsDescription": "Voeg ten minste één gebruiker, rol of e-mail toe om te melden.", + "uptimeAlertCreated": "Alarm aangemaakt", + "uptimeAlertCreatedDescription": "U wordt op de hoogte gebracht wanneer dit van status verandert.", + "uptimeAlertCreateFailed": "Kon alarm niet aanmaken", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Sleutel", + "webhookHeaderValuePlaceholder": "Waarde", + "alertLabel": "Waarschuwing", + "domainPickerWildcardSubdomainNotAllowed": "Wildcard-subdomeinen zijn niet toegestaan.", + "domainPickerWildcardCertWarning": "Wildcard-bronnen hebben mogelijk extra configuratie nodig om correct te werken.", + "domainPickerWildcardCertWarningLink": "Meer informatie", + "health": "Gezondheid" } From 5e6171263bdd3a80359c02d7c89846239d833525 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:11 -0700 Subject: [PATCH 071/131] New translations en-us.json (Polish) --- messages/pl-PL.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/pl-PL.json b/messages/pl-PL.json index 1fc66fadb..9d9968001 100644 --- a/messages/pl-PL.json +++ b/messages/pl-PL.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Skopiowałem konfigurację", "searchSitesProgress": "Szukaj witryn...", "siteAdd": "Dodaj witrynę", + "sitesTableViewPublicResources": "Zobacz zasoby publiczne", + "sitesTableViewPrivateResources": "Zobacz zasoby prywatne", "siteInstallNewt": "Zainstaluj Newt", "siteInstallNewtDescription": "Uruchom Newt w swoim systemie", "WgConfiguration": "Konfiguracja WireGuard", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "Strona została zaktualizowana.", "siteGeneralDescription": "Skonfiguruj ustawienia ogólne dla tej witryny", "siteSettingDescription": "Skonfiguruj ustawienia na stronie", + "siteResourcesTab": "Zasoby", + "siteResourcesNoneOnSite": "Ta strona nie ma jeszcze żadnych zasobów publicznych ani prywatnych.", + "siteResourcesSectionPublic": "Zasoby publiczne", + "siteResourcesSectionPrivate": "Zasoby prywatne", + "siteResourcesSectionPublicDescription": "Zasoby eksponowane zewnętrznie przez domeny lub porty.", + "siteResourcesSectionPrivateDescription": "Zasoby dostępne w twojej prywatnej sieci przez stronę.", + "siteResourcesViewAllPublic": "Zobacz wszystkie zasoby", + "siteResourcesViewAllPrivate": "Zobacz wszystkie zasoby", + "siteResourcesDialogDescription": "Przegląd zasobów publicznych i prywatnych związanych z tą stroną.", + "siteResourcesShowMore": "Pokaż więcej", + "siteResourcesPermissionDenied": "Nie masz uprawnień do wyświetlania tych zasobów.", + "siteResourcesEmptyPublic": "Brak publicznych zasobów powiązanych z tą stroną.", + "siteResourcesEmptyPrivate": "Brak prywatnych zasobów powiązanych z tą stroną.", + "siteResourcesHowToAccess": "Jak uzyskać dostęp", + "siteResourcesTargetsOnSite": "Cele na tej stronie", "siteSetting": "Ustawienia {siteName}", "siteNewtTunnel": "Newt Site (Rekomendowane)", "siteNewtTunnelDescription": "Najprostszy sposób na stworzenie punktu wejścia w sieci. Nie ma dodatkowej konfiguracji.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Status kontroli zdrowia zmienia się", "alertingTriggerResourceHealthy": "Zasób zdrowy", "alertingTriggerResourceUnhealthy": "Zasób niezdrowy", + "alertingTriggerResourceDegraded": "Zasób pogorszony", "alertingSearchHealthChecks": "Szukaj kontroli zdrowia…", "alertingHealthChecksEmpty": "Brak dostępnych kontroli zdrowia.", "alertingTriggerResourceToggle": "Zmiany statusu zasobu", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Utwórz początkowe konto administratora serwera. Może istnieć tylko jeden administrator serwera. Zawsze można zmienić te dane uwierzytelniające.", "createAdminAccount": "Utwórz konto administratora", "setupErrorCreateAdmin": "Wystąpił błąd podczas tworzenia konta administratora serwera.", - "certificateStatus": "Status certyfikatu", + "certificateStatus": "Certyfikat", "loading": "Ładowanie", "loadingAnalytics": "Ładowanie Analityki", "restart": "Uruchom ponownie", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Skonfiguruj Kontrolę Zdrowia", "configureHealthCheckDescription": "Skonfiguruj monitorowanie zdrowia dla {target}", "enableHealthChecks": "Włącz Kontrole Zdrowia", + "healthCheckDisabledStateDescription": "Gdy wyłączone, strona nie będzie wykonywać kontroli zdrowia, a stan zostanie uznany za nieznany.", "enableHealthChecksDescription": "Monitoruj zdrowie tego celu. Możesz monitorować inny punkt końcowy niż docelowy w razie potrzeby.", "healthScheme": "Metoda", "healthSelectScheme": "Wybierz metodę", @@ -1947,6 +1966,8 @@ "httpMethod": "Metoda HTTP", "selectHttpMethod": "Wybierz metodę HTTP", "domainPickerSubdomainLabel": "Poddomena", + "domainPickerWildcard": "Uniwersalny", + "domainPickerWildcardPaidOnly": "Uniwersalne subdomeny są płatną funkcją. Proszę dokonać aktualizacji, aby uzyskać dostęp do tej funkcji.", "domainPickerBaseDomainLabel": "Domen bazowa", "domainPickerSearchDomains": "Szukaj domen...", "domainPickerNoDomainsFound": "Nie znaleziono domen", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Ten adres jest częścią podsieci użyteczności organizacji. Jest używany do rozwiązywania rekordów aliasu przy użyciu wewnętrznej rozdzielczości DNS.", "resourcesTableClients": "Klientami", "resourcesTableAndOnlyAccessibleInternally": "i są dostępne tylko wewnętrznie po połączeniu z klientem.", - "resourcesTableNoTargets": "Brak celów", "resourcesTableHealthy": "Zdrowe", "resourcesTableDegraded": "Degradacja", - "resourcesTableOffline": "Offline", + "resourcesTableUnhealthy": "Niezdrowy", "resourcesTableUnknown": "Nieznane", "resourcesTableNotMonitored": "Nie monitorowano", + "resourcesTableNoTargets": "Brak celów", "editInternalResourceDialogEditClientResource": "Edytuj Zasoby Prywatne", "editInternalResourceDialogUpdateResourceProperties": "Aktualizuj konfigurację zasobów i kontrolę dostępu dla {resourceName}", "editInternalResourceDialogResourceProperties": "Właściwości zasobów", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Zweryfikowano", "domainPickerUnverified": "Niezweryfikowane", "domainPickerManual": "Podręcznik", - "domainPickerInvalidSubdomainStructure": "Ta subdomena zawiera nieprawidłowe znaki lub strukturę. Zostanie ona automatycznie oczyszczona po zapisaniu.", + "domainPickerInvalidSubdomainStructure": "Nieprawidłowe znaki zostaną zsanitowane, gdy zostaną zapisane.", "domainPickerError": "Błąd", "domainPickerErrorLoadDomains": "Nie udało się załadować domen organizacji", "domainPickerErrorCheckAvailability": "Nie udało się sprawdzić dostępności domeny", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Dodaj klientów", "editInternalResourceDialogDestinationLabel": "Miejsce docelowe", "editInternalResourceDialogDestinationDescription": "Określ adres docelowy dla wewnętrznego zasobu. Może to być nazwa hosta, adres IP lub zakres CIDR, w zależności od wybranego trybu. Opcjonalnie ustaw wewnętrzny alias DNS dla łatwiejszej identyfikacji.", + "internalResourceFormMultiSiteRoutingHelp": "Wybór wielu stron umożliwia odporne trasowanie i awarię dla wysokiej dostępności.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Dowiedz się więcej", "editInternalResourceDialogPortRestrictionsDescription": "Ogranicz dostęp do konkretnych portów TCP/UDP lub zezwól/zablokuj wszystkie porty.", "createInternalResourceDialogHttpConfiguration": "Konfiguracja HTTP", "createInternalResourceDialogHttpConfigurationDescription": "Wybierz domenę, której klienci będą używać, aby dotrzeć do tego zasobu przez HTTP lub HTTPS.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Szacowany czas zakończenia (opcjonalnie)", "privateMaintenanceScreenTitle": "Ekraan prywatnego utrzymania", "privateMaintenanceScreenMessage": "Ta domena jest wykorzystywana na prywatnym zasobie. Połącz się za pomocą klienta Pangolin, aby uzyskać dostęp do tego zasobu.", + "privateMaintenanceScreenSteps": "Po połączeniu, jeśli nadal widzisz tę wiadomość, pamięć podręczna DNS przeglądarki może nadal wskazywać na stary adres. Aby to naprawić: zamknij i otwórz ponownie tę kartę lub przeglądarkę, a następnie przejdź z powrotem na tę stronę.", "maintenanceTime": "np. 2 godziny, 1 listopad o 17:00", "maintenanceEstimatedTimeDescription": "Kiedy oczekujesz zakończenia konserwacji", "editDomain": "Edytuj domenę", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Usuń", "publicIpEndpoint": "Koniec punktu pracy", "lastTriggeredAt": "Ostatnie Wyzwolenie", - "reject": "Odrzuć" + "reject": "Odrzuć", + "uptimeDaysAgo": "{count} dni temu", + "uptimeToday": "Dzisiaj", + "uptimeNoDataAvailable": "Brak danych dostępnych", + "uptimeSuffix": "czas pracy", + "uptimeDowntimeSuffix": "czas przestoju", + "uptimeTooltipUptimeLabel": "Czas pracy", + "uptimeTooltipDowntimeLabel": "Czas przestoju", + "uptimeOngoing": "w toku", + "uptimeNoMonitoringData": "Brak danych monitorowania", + "uptimeNoData": "Brak danych", + "uptimeMiniBarDown": "Nieaktywny", + "uptimeSectionTitle": "Czas pracy", + "uptimeSectionDescription": "Dostępność za ostatnie {days} dni", + "uptimeAddAlert": "Dodaj Alert", + "uptimeViewAlerts": "Zobacz Alerty", + "uptimeCreateEmailAlert": "Utwórz Alert Email", + "uptimeAlertDescriptionSite": "Otrzymuj powiadomienia e-mail, gdy ta strona jest offline lub wraca online.", + "uptimeAlertDescriptionResource": "Otrzymuj powiadomienia e-mail, gdy to zasób jest offline lub wraca online.", + "uptimeAlertNamePlaceholder": "Nazwa alertu", + "uptimeAdditionalEmails": "Dodatkowe adresy e-mail", + "uptimeCreateAlert": "Utwórz Alert", + "uptimeAlertNoRecipients": "Brak odbiorców", + "uptimeAlertNoRecipientsDescription": "Proszę dodać przynajmniej jednego użytkownika, rolę lub adres email do powiadomienia.", + "uptimeAlertCreated": "Alert utworzony", + "uptimeAlertCreatedDescription": "Zostaniesz powiadomiony, gdy status się zmieni.", + "uptimeAlertCreateFailed": "Nie udało się utworzyć alertu", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Klucz", + "webhookHeaderValuePlaceholder": "Wartość", + "alertLabel": "Alert", + "domainPickerWildcardSubdomainNotAllowed": "Uniwersalne subdomeny nie są dozwolone.", + "domainPickerWildcardCertWarning": "Uniwersalne zasoby mogą wymagać dodatkowej konfiguracji, aby działać poprawnie.", + "domainPickerWildcardCertWarningLink": "Dowiedz się więcej", + "health": "Zdrowie" } From 6c2dd4331a2705f26dbae2af9f5a95fd71117c3f Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:13 -0700 Subject: [PATCH 072/131] New translations en-us.json (Portuguese) --- messages/pt-PT.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/pt-PT.json b/messages/pt-PT.json index 949f06ac6..6d0d751a4 100644 --- a/messages/pt-PT.json +++ b/messages/pt-PT.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Eu copiei a configuração", "searchSitesProgress": "Procurar sites...", "siteAdd": "Adicionar Site", + "sitesTableViewPublicResources": "Visualizar Recursos Públicos", + "sitesTableViewPrivateResources": "Visualizar Recursos Privados", "siteInstallNewt": "Instalar Novo", "siteInstallNewtDescription": "Novo item em execução no seu sistema", "WgConfiguration": "Configuração do WireGuard", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "O site foi atualizado.", "siteGeneralDescription": "Configurar as configurações gerais para este site", "siteSettingDescription": "Configurar as configurações no site", + "siteResourcesTab": "Recursos", + "siteResourcesNoneOnSite": "Este site ainda não possui recursos públicos ou privados.", + "siteResourcesSectionPublic": "Recursos Públicos", + "siteResourcesSectionPrivate": "Recursos Privados", + "siteResourcesSectionPublicDescription": "Recursos expostos externamente por meio de domínios ou portas.", + "siteResourcesSectionPrivateDescription": "Recursos disponíveis na sua rede privada por meio do site.", + "siteResourcesViewAllPublic": "Ver todos os recursos", + "siteResourcesViewAllPrivate": "Ver todos os recursos", + "siteResourcesDialogDescription": "Visão geral dos recursos públicos e privados associados a este site.", + "siteResourcesShowMore": "Mostrar Mais", + "siteResourcesPermissionDenied": "Você não tem permissão para listar estes recursos.", + "siteResourcesEmptyPublic": "Ainda não há recursos públicos direcionados para este site.", + "siteResourcesEmptyPrivate": "Ainda não há recursos privados associados a este site.", + "siteResourcesHowToAccess": "Como acessar", + "siteResourcesTargetsOnSite": "Alvos neste site", "siteSetting": "Configurações do {siteName}", "siteNewtTunnel": "Novo Site (Recomendado)", "siteNewtTunnelDescription": "Maneira mais fácil de criar um ponto de entrada em qualquer rede. Nenhuma configuração extra.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Status da verificação de saúde muda", "alertingTriggerResourceHealthy": "Recurso saudável", "alertingTriggerResourceUnhealthy": "Recurso não saudável", + "alertingTriggerResourceDegraded": "Recurso degradado", "alertingSearchHealthChecks": "Pesquisar verificações de saúde…", "alertingHealthChecksEmpty": "Nenhuma verificação de saúde disponível.", "alertingTriggerResourceToggle": "Status do recurso muda", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Crie a conta de administrador inicial do servidor. Apenas um administrador do servidor pode existir. Você sempre pode alterar essas credenciais posteriormente.", "createAdminAccount": "Criar Conta de Administrador", "setupErrorCreateAdmin": "Ocorreu um erro ao criar a conta de administrador do servidor.", - "certificateStatus": "Status do Certificado", + "certificateStatus": "Certificado", "loading": "Carregando", "loadingAnalytics": "Carregando Analytics", "restart": "Reiniciar", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Configurar Verificação de Saúde", "configureHealthCheckDescription": "Configure a monitorização de saúde para {target}", "enableHealthChecks": "Ativar Verificações de Saúde", + "healthCheckDisabledStateDescription": "Quando desativado, o site não realizará verificações de saúde e o estado será considerado desconhecido.", "enableHealthChecksDescription": "Monitore a saúde deste alvo. Você pode monitorar um ponto de extremidade diferente do alvo, se necessário.", "healthScheme": "Método", "healthSelectScheme": "Selecione o Método", @@ -1947,6 +1966,8 @@ "httpMethod": "Método HTTP", "selectHttpMethod": "Selecionar método HTTP", "domainPickerSubdomainLabel": "Subdomínio", + "domainPickerWildcard": "Coringa", + "domainPickerWildcardPaidOnly": "Subdomínios curinga são um recurso pago. Por favor, atualize para acessar este recurso.", "domainPickerBaseDomainLabel": "Domínio Base", "domainPickerSearchDomains": "Buscar domínios...", "domainPickerNoDomainsFound": "Nenhum domínio encontrado", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Este endereço faz parte da sub-rede de utilitários da organização. É usado para resolver registros de alias usando resolução de DNS interno.", "resourcesTableClients": "Clientes", "resourcesTableAndOnlyAccessibleInternally": "e são acessíveis apenas internamente quando conectados com um cliente.", - "resourcesTableNoTargets": "Nenhum alvo", "resourcesTableHealthy": "Saudável", "resourcesTableDegraded": "Degradado", - "resourcesTableOffline": "Desconectado", + "resourcesTableUnhealthy": "Não Saudável", "resourcesTableUnknown": "Desconhecido", "resourcesTableNotMonitored": "Não monitorado", + "resourcesTableNoTargets": "Sem alvos", "editInternalResourceDialogEditClientResource": "Editar Recurso Privado", "editInternalResourceDialogUpdateResourceProperties": "Atualizar as configurações de recursos e controles de acesso para {resourceName}", "editInternalResourceDialogResourceProperties": "Propriedades do Recurso", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Verificada", "domainPickerUnverified": "Não verificado", "domainPickerManual": "Manual", - "domainPickerInvalidSubdomainStructure": "Este subdomínio contém caracteres ou estrutura inválidos. Ele será eliminado automaticamente quando você salvar.", + "domainPickerInvalidSubdomainStructure": "Caracteres inválidos serão sanitizados ao serem salvos.", "domainPickerError": "ERRO", "domainPickerErrorLoadDomains": "Falha ao carregar domínios da organização", "domainPickerErrorCheckAvailability": "Não foi possível verificar a disponibilidade do domínio", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Adicionar Clientes", "editInternalResourceDialogDestinationLabel": "Destino", "editInternalResourceDialogDestinationDescription": "Especifique o endereço de destino para o recurso interno. Isso pode ser um nome de host, endereço IP ou intervalo CIDR, dependendo do modo selecionado. Opcionalmente, defina um alias interno de DNS para facilitar a identificação.", + "internalResourceFormMultiSiteRoutingHelp": "Selecionar múltiplos sites permite roteamento resiliente e failover para alta disponibilidade.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Saiba mais", "editInternalResourceDialogPortRestrictionsDescription": "Restrinja o acesso a portas TCP/UDP específicas ou permita/bloqueie todas as portas.", "createInternalResourceDialogHttpConfiguration": "Configuração HTTP", "createInternalResourceDialogHttpConfigurationDescription": "Escolha o domínio que os clientes usarão para acessar este recurso via HTTP ou HTTPS.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Hora de Conclusão Estimada (Opcional)", "privateMaintenanceScreenTitle": "Tela de Placeholder Privada", "privateMaintenanceScreenMessage": "Este domínio está sendo usado em um recurso privado. Por favor, conecte-se usando o cliente Pangolin para acessar este recurso.", + "privateMaintenanceScreenSteps": "Depois de conectado, se você ainda estiver vendo esta mensagem, o cache DNS do seu navegador pode ainda apontar para o antigo endereço. Para corrigir isso: feche completamente e reabra esta aba, ou o seu navegador, e então navegue de volta para esta página.", "maintenanceTime": "por exemplo, 2 horas, 1 de Nov às 17h00", "maintenanceEstimatedTimeDescription": "Quando você espera que a manutenção seja concluída", "editDomain": "Editar Domínio", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Excluir", "publicIpEndpoint": "Endpoint", "lastTriggeredAt": "Último Gatilho", - "reject": "Rejeitar" + "reject": "Rejeitar", + "uptimeDaysAgo": "há {count} dias", + "uptimeToday": "Hoje", + "uptimeNoDataAvailable": "Sem dados disponíveis", + "uptimeSuffix": "tempo de atividade", + "uptimeDowntimeSuffix": "tempo de inatividade", + "uptimeTooltipUptimeLabel": "Tempo de Atividade", + "uptimeTooltipDowntimeLabel": "Tempo de Inatividade", + "uptimeOngoing": "em andamento", + "uptimeNoMonitoringData": "Sem dados de monitoramento", + "uptimeNoData": "Sem dados", + "uptimeMiniBarDown": "Inativo", + "uptimeSectionTitle": "Tempo de Atividade", + "uptimeSectionDescription": "Disponibilidade nos últimos {days} dias", + "uptimeAddAlert": "Adicionar Alerta", + "uptimeViewAlerts": "Visualizar Alertas", + "uptimeCreateEmailAlert": "Criar Alerta por Email", + "uptimeAlertDescriptionSite": "Seja notificado por email quando este site sair do ar ou voltar online.", + "uptimeAlertDescriptionResource": "Seja notificado por email quando este recurso sair do ar ou voltar online.", + "uptimeAlertNamePlaceholder": "Nome do alerta", + "uptimeAdditionalEmails": "Emails Adicionais", + "uptimeCreateAlert": "Criar Alerta", + "uptimeAlertNoRecipients": "Sem destinatários", + "uptimeAlertNoRecipientsDescription": "Por favor, adicione pelo menos um usuário, função ou email para notificar.", + "uptimeAlertCreated": "Alerta criado", + "uptimeAlertCreatedDescription": "Você será notificado quando isso mudar de status.", + "uptimeAlertCreateFailed": "Falha ao criar alerta", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Chave", + "webhookHeaderValuePlaceholder": "Valor", + "alertLabel": "Alerta", + "domainPickerWildcardSubdomainNotAllowed": "Subdomínios curinga não são permitidos.", + "domainPickerWildcardCertWarning": "Recursos curinga podem exigir configurações adicionais para funcionarem corretamente.", + "domainPickerWildcardCertWarningLink": "Saiba mais", + "health": "Saúde" } From a0619868be75b743cfed8c7089973c92d9d27e62 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:15 -0700 Subject: [PATCH 073/131] New translations en-us.json (Russian) --- messages/ru-RU.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/ru-RU.json b/messages/ru-RU.json index d5496e660..6490040cb 100644 --- a/messages/ru-RU.json +++ b/messages/ru-RU.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Я скопировал(а) конфигурацию", "searchSitesProgress": "Поиск сайтов...", "siteAdd": "Добавить сайт", + "sitesTableViewPublicResources": "Просмотр публичных ресурсов", + "sitesTableViewPrivateResources": "Просмотр частных ресурсов", "siteInstallNewt": "Установить Newt", "siteInstallNewtDescription": "Запустите Newt в вашей системе", "WgConfiguration": "Конфигурация WireGuard", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "Сайт был успешно обновлён.", "siteGeneralDescription": "Настройте общие параметры для этого сайта", "siteSettingDescription": "Настройка параметров на сайте", + "siteResourcesTab": "Ресурсы", + "siteResourcesNoneOnSite": "На этом сайте пока нет публичных или частных ресурсов.", + "siteResourcesSectionPublic": "Публичные ресурсы", + "siteResourcesSectionPrivate": "Частные ресурсы", + "siteResourcesSectionPublicDescription": "Ресурсы, доступные извне через домены или порты.", + "siteResourcesSectionPrivateDescription": "Ресурсы доступны на вашем частном сетевом ресурсе через сайт.", + "siteResourcesViewAllPublic": "Просмотреть все ресурсы", + "siteResourcesViewAllPrivate": "Просмотреть все ресурсы", + "siteResourcesDialogDescription": "Обзор публичных и частных ресурсов, связанных с этим сайтом.", + "siteResourcesShowMore": "Показать еще", + "siteResourcesPermissionDenied": "У вас нет разрешения на просмотр этих ресурсов.", + "siteResourcesEmptyPublic": "Ни один публичный ресурс еще не нацелен на этот сайт.", + "siteResourcesEmptyPrivate": "С этим сайтом еще не связано ни одного частного ресурса.", + "siteResourcesHowToAccess": "Как получить доступ", + "siteResourcesTargetsOnSite": "Цели на этом сайте", "siteSetting": "Настройки {siteName}", "siteNewtTunnel": "Новый сайт (рекомендуется)", "siteNewtTunnelDescription": "Самый простой способ создать точку входа в любую сеть. Дополнительная настройка не требуется.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Статус проверки здоровья изменяется", "alertingTriggerResourceHealthy": "Ресурс в нормальном состоянии", "alertingTriggerResourceUnhealthy": "Ресурс в ненормальном состоянии", + "alertingTriggerResourceDegraded": "Ресурс ухудшен", "alertingSearchHealthChecks": "Поиск проверок здоровья…", "alertingHealthChecksEmpty": "Нет доступных проверок здоровья.", "alertingTriggerResourceToggle": "Статус ресурса изменяется", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Создайте первоначальную учётную запись администратора сервера. Может существовать только один администратор сервера. Вы всегда можете изменить эти учётные данные позже.", "createAdminAccount": "Создать учётную запись администратора", "setupErrorCreateAdmin": "Произошла ошибка при создании учётной записи администратора сервера.", - "certificateStatus": "Статус сертификата", + "certificateStatus": "Сертификат", "loading": "Загрузка", "loadingAnalytics": "Загрузка аналитики", "restart": "Перезагрузка", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Настроить проверку здоровья", "configureHealthCheckDescription": "Настройте мониторинг состояния для {target}", "enableHealthChecks": "Включить проверки здоровья", + "healthCheckDisabledStateDescription": "Когда отключен, сайт не будет выполнять проверки состояния и состояние будет считаться неизвестным.", "enableHealthChecksDescription": "Мониторинг здоровья этой цели. При необходимости можно контролировать другую конечную точку.", "healthScheme": "Метод", "healthSelectScheme": "Выберите метод", @@ -1947,6 +1966,8 @@ "httpMethod": "HTTP метод", "selectHttpMethod": "Выберите HTTP метод", "domainPickerSubdomainLabel": "Поддомен", + "domainPickerWildcard": "Подстановочный знак", + "domainPickerWildcardPaidOnly": "Wildcard поддомены являются платной функцией. Пожалуйста, обновите подписку, чтобы воспользоваться этой функцией.", "domainPickerBaseDomainLabel": "Основной домен", "domainPickerSearchDomains": "Поиск доменов...", "domainPickerNoDomainsFound": "Доменов не найдено", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Этот адрес является частью вспомогательной подсети организации. Он используется для разрешения псевдонимов с использованием внутреннего разрешения DNS.", "resourcesTableClients": "Клиенты", "resourcesTableAndOnlyAccessibleInternally": "и доступны только внутренне при подключении с клиентом.", - "resourcesTableNoTargets": "Нет ярлыков", "resourcesTableHealthy": "Здоровые", "resourcesTableDegraded": "Ухудшение", - "resourcesTableOffline": "Оффлайн", + "resourcesTableUnhealthy": "Проблемные", "resourcesTableUnknown": "Неизвестен", "resourcesTableNotMonitored": "Не отслеживается", + "resourcesTableNoTargets": "Нет целей", "editInternalResourceDialogEditClientResource": "Изменить приватный ресурс", "editInternalResourceDialogUpdateResourceProperties": "Обновить настройки ресурса и элементы управления доступом для {resourceName}", "editInternalResourceDialogResourceProperties": "Свойства ресурса", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Подтверждено", "domainPickerUnverified": "Не подтверждено", "domainPickerManual": "Ручной", - "domainPickerInvalidSubdomainStructure": "Этот поддомен содержит недопустимые символы или структуру. Он будет очищен автоматически при сохранении.", + "domainPickerInvalidSubdomainStructure": "Недопустимые символы будут очищены при сохранении.", "domainPickerError": "Ошибка", "domainPickerErrorLoadDomains": "Не удалось загрузить домены организации", "domainPickerErrorCheckAvailability": "Не удалось проверить доступность домена", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Добавить клиентов", "editInternalResourceDialogDestinationLabel": "Пункт назначения", "editInternalResourceDialogDestinationDescription": "Укажите адрес назначения для внутреннего ресурса. Это может быть имя хоста, IP-адрес или диапазон CIDR в зависимости от выбранного режима. При необходимости установите внутренний DNS-алиас для облегчения идентификации.", + "internalResourceFormMultiSiteRoutingHelp": "Выбор нескольких сайтов позволяет обеспечить отказоустойчивую маршрутизацию и фейловер для высокой доступности.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Узнать больше", "editInternalResourceDialogPortRestrictionsDescription": "Ограничьте доступ к определенным TCP/UDP-портам или разрешите/заблокируйте все порты.", "createInternalResourceDialogHttpConfiguration": "Конфигурация HTTP", "createInternalResourceDialogHttpConfigurationDescription": "Выберите домен, который клиенты будут использовать для доступа к этому ресурсу через HTTP или HTTPS.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Предполагаемое время завершения (необязательно)", "privateMaintenanceScreenTitle": "Экраны частной заглушки", "privateMaintenanceScreenMessage": "Этот домен используется на частном ресурсе. Пожалуйста, подключитесь с помощью клиента Pangolin для доступа к этому ресурсу.", + "privateMaintenanceScreenSteps": "После подключения, если это сообщение по-прежнему отображается, кэш DNS вашего браузера может указывать на старый адрес. Чтобы исправить эту неисправность: полностью закройте и снова откройте эту вкладку или браузер, затем вернитесь на эту страницу.", "maintenanceTime": "например, 2 часа, 1 ноября в 5:00 вечера", "maintenanceEstimatedTimeDescription": "Когда вы ожидаете завершения обслуживания", "editDomain": "Редактировать домен", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Удалить", "publicIpEndpoint": "Конечная точка", "lastTriggeredAt": "Последний триггер", - "reject": "Отклонить" + "reject": "Отклонить", + "uptimeDaysAgo": "{count} дней назад", + "uptimeToday": "Сегодня", + "uptimeNoDataAvailable": "Нет доступных данных", + "uptimeSuffix": "время работы", + "uptimeDowntimeSuffix": "время простоя", + "uptimeTooltipUptimeLabel": "Время работы", + "uptimeTooltipDowntimeLabel": "Время простоя", + "uptimeOngoing": "в процессе", + "uptimeNoMonitoringData": "Отсутствуют данные мониторинга", + "uptimeNoData": "Нет данных", + "uptimeMiniBarDown": "Не работает", + "uptimeSectionTitle": "Время работы", + "uptimeSectionDescription": "Доступность за последние {days} дней", + "uptimeAddAlert": "Добавить предупреждение", + "uptimeViewAlerts": "Просмотр предупреждений", + "uptimeCreateEmailAlert": "Создать оповещение по электронной почте", + "uptimeAlertDescriptionSite": "Получайте уведомления по электронной почте, когда этот сайт выходит из сети или снова подключается.", + "uptimeAlertDescriptionResource": "Получайте уведомления по электронной почте, когда этот ресурс выходит из сети или снова подключается.", + "uptimeAlertNamePlaceholder": "Название предупреждения", + "uptimeAdditionalEmails": "Дополнительные адреса электронной почты", + "uptimeCreateAlert": "Создать предупреждение", + "uptimeAlertNoRecipients": "Нет получателей", + "uptimeAlertNoRecipientsDescription": "Пожалуйста, добавьте хотя бы одного пользователя, роль или email для уведомления.", + "uptimeAlertCreated": "Предупреждение создано", + "uptimeAlertCreatedDescription": "Вы будете уведомлены, когда статус изменится.", + "uptimeAlertCreateFailed": "Не удалось создать предупреждение", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Ключ", + "webhookHeaderValuePlaceholder": "Значение", + "alertLabel": "Предупреждение", + "domainPickerWildcardSubdomainNotAllowed": "Wildcard поддомены не допускаются.", + "domainPickerWildcardCertWarning": "Wildcard ресурсы могут потребовать дополнительной настройки для правильной работы.", + "domainPickerWildcardCertWarningLink": "Узнать больше", + "health": "Состояние" } From 1c6cd57c3180a4bc941b7eedda09b591aa93b196 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:16 -0700 Subject: [PATCH 074/131] New translations en-us.json (Turkish) --- messages/tr-TR.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/tr-TR.json b/messages/tr-TR.json index b7b3c877c..2676d2fba 100644 --- a/messages/tr-TR.json +++ b/messages/tr-TR.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Yapılandırmayı kopyaladım", "searchSitesProgress": "Siteleri ara...", "siteAdd": "Site Ekle", + "sitesTableViewPublicResources": "Genel Kaynakları Görüntüle", + "sitesTableViewPrivateResources": "Özel Kaynakları Görüntüle", "siteInstallNewt": "Newt Yükle", "siteInstallNewtDescription": "Newt'i sisteminizde çalıştırma", "WgConfiguration": "WireGuard Yapılandırması", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "Site güncellendi.", "siteGeneralDescription": "Bu site için genel ayarları yapılandırın", "siteSettingDescription": "Sitenizdeki ayarları yapılandırın", + "siteResourcesTab": "Kaynaklar", + "siteResourcesNoneOnSite": "Bu sitede henüz genel veya özel kaynak yok.", + "siteResourcesSectionPublic": "Genel Kaynaklar", + "siteResourcesSectionPrivate": "Özel Kaynaklar", + "siteResourcesSectionPublicDescription": "Alanlar veya portlar üzerinden dışarıdan açığa çıkan kaynaklar.", + "siteResourcesSectionPrivateDescription": "Site aracılığıyla özel ağınızda mevcut olan kaynaklar.", + "siteResourcesViewAllPublic": "Tüm kaynakları görüntüle", + "siteResourcesViewAllPrivate": "Tüm kaynakları görüntüle", + "siteResourcesDialogDescription": "Bu siteyle ilişkili genel ve özel kaynakların genel bakışı.", + "siteResourcesShowMore": "Daha fazla göster", + "siteResourcesPermissionDenied": "Bu kaynakları listeleme izniniz yok.", + "siteResourcesEmptyPublic": "Bu siteyi hedefleyen herhangi bir genel kaynak yok.", + "siteResourcesEmptyPrivate": "Bu siteyle ilişkilendirilmiş özel kaynak yok.", + "siteResourcesHowToAccess": "Nasıl erişilir", + "siteResourcesTargetsOnSite": "Bu sitedeki hedefler", "siteSetting": "{siteName} Ayarları", "siteNewtTunnel": "Newt Site (Önerilen)", "siteNewtTunnelDescription": "Ağınıza giriş noktası oluşturmanın en kolay yolu. Ekstra kurulum gerekmez.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Sağlık kontrolü durumu değişiyor", "alertingTriggerResourceHealthy": "Kaynak sağlıklı", "alertingTriggerResourceUnhealthy": "Kaynak sağlıksız", + "alertingTriggerResourceDegraded": "Kaynak bozuk", "alertingSearchHealthChecks": "Sağlık kontrollerini ara…", "alertingHealthChecksEmpty": "Mevcut sağlık kontrolü yok.", "alertingTriggerResourceToggle": "Kaynak durumu değişiyor", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "İlk sunucu yönetici hesabını oluşturun. Yalnızca bir sunucu yöneticisi olabilir. Bu kimlik bilgilerini daha sonra her zaman değiştirebilirsiniz.", "createAdminAccount": "Yönetici Hesabı Oluştur", "setupErrorCreateAdmin": "Sunucu yönetici hesabı oluşturulurken bir hata oluştu.", - "certificateStatus": "Sertifika Durumu", + "certificateStatus": "Sertifika", "loading": "Yükleniyor", "loadingAnalytics": "Analiz Yükleniyor", "restart": "Yeniden Başlat", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Sağlık Kontrolünü Yapılandır", "configureHealthCheckDescription": "{hedef} için sağlık izleme kurun", "enableHealthChecks": "Sağlık Kontrollerini Etkinleştir", + "healthCheckDisabledStateDescription": "Devre dışı bırakıldığında, site sağlık kontrolleri yapmaz ve durum bilinmeyen olarak kabul edilecektir.", "enableHealthChecksDescription": "Bu hedefin sağlığını izleyin. Gerekirse hedef dışındaki bir son noktayı izleyebilirsiniz.", "healthScheme": "Yöntem", "healthSelectScheme": "Yöntem Seç", @@ -1947,6 +1966,8 @@ "httpMethod": "HTTP Yöntemi", "selectHttpMethod": "HTTP yöntemini seçin", "domainPickerSubdomainLabel": "Alt Alan Adı", + "domainPickerWildcard": "Genel karakter", + "domainPickerWildcardPaidOnly": "Genel alt alanlar ücretli bir özelliktir. Bu özelliğe erişmek için lütfen yükseltin.", "domainPickerBaseDomainLabel": "Temel Alan Adı", "domainPickerSearchDomains": "Alan adlarını ara...", "domainPickerNoDomainsFound": "Hiçbir alan adı bulunamadı", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Bu adres, kuruluşun yardımcı ağ alt bantının bir parçasıdır. Alias kayıtlarını çözümlemek için dahili DNS çözümlemesi kullanılır.", "resourcesTableClients": "İstemciler", "resourcesTableAndOnlyAccessibleInternally": "veyalnızca bir istemci ile bağlandığında dahili olarak erişilebilir.", - "resourcesTableNoTargets": "Hedef yok", "resourcesTableHealthy": "Sağlıklı", "resourcesTableDegraded": "Düşük Performanslı", - "resourcesTableOffline": "Çevrimdışı", + "resourcesTableUnhealthy": "Sağlıksız", "resourcesTableUnknown": "Bilinmiyor", "resourcesTableNotMonitored": "İzlenmiyor", + "resourcesTableNoTargets": "Hedef yok", "editInternalResourceDialogEditClientResource": "Özel Kaynak Düzenleyin", "editInternalResourceDialogUpdateResourceProperties": "{resourceName} için kaynak ayarlarını ve erişim kontrollerini güncelleyin", "editInternalResourceDialogResourceProperties": "Kaynak Özellikleri", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Doğrulandı", "domainPickerUnverified": "Doğrulanmadı", "domainPickerManual": "Manuel", - "domainPickerInvalidSubdomainStructure": "Bu alt alan adı geçersiz karakterler veya yapı içeriyor. Kaydettiğinizde otomatik olarak temizlenecektir.", + "domainPickerInvalidSubdomainStructure": "Geçersiz karakterler kaydedildiğinde temizlenecektir.", "domainPickerError": "Hata", "domainPickerErrorLoadDomains": "Organizasyon alan adları yüklenemedi", "domainPickerErrorCheckAvailability": "Alan adı kullanılabilirliği kontrol edilemedi", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Müşteriler Ekle", "editInternalResourceDialogDestinationLabel": "Hedef", "editInternalResourceDialogDestinationDescription": "Dahili kaynak için hedef adresi belirtin. Seçilen moda bağlı olarak bu bir ana bilgisayar adı, IP adresi veya CIDR aralığı olabilir. Daha kolay tanımlama için isteğe bağlı olarak dahili bir DNS takma adı ayarlayın.", + "internalResourceFormMultiSiteRoutingHelp": "Birden fazla site seçmek, yüksek kullanılabilirlik için dirençli yönlendirme ve yedeklik sağlar.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Daha fazla bilgi", "editInternalResourceDialogPortRestrictionsDescription": "Belirtilen TCP/UDP portlarına erişimi kısıtlayın veya tüm portlara izin/engelleme verin.", "createInternalResourceDialogHttpConfiguration": "HTTP yapılandırması", "createInternalResourceDialogHttpConfigurationDescription": "HTTP veya HTTPS üzerinden bu kaynağa ulaşmak için istemcilerin kullanacağı alan adını seçin.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Tahmini Tamamlanma Süresi (İsteğe Bağlı)", "privateMaintenanceScreenTitle": "Özel Yer Tutucu Ekran", "privateMaintenanceScreenMessage": "Bu alan adı özel bir kaynak üzerinde kullanılmaktadır. Bu kaynağa erişmek için Pangolin istemcisini kullanarak bağlanın.", + "privateMaintenanceScreenSteps": "Bağlanıldıktan sonra, hâlâ bu mesajı görüyorsanız tarayıcınızın DNS önbelleği eski adrese işaret ediyor olabilir. Bunu düzeltmek için: bu sekmeyi veya tarayıcınızı tamamen kapatıp tekrar açın, ardından bu sayfaya geri dönün.", "maintenanceTime": "ör. 2 saat, 1 Kasım saat 17:00", "maintenanceEstimatedTimeDescription": "Bakımın ne zaman tamamlanmasını bekliyorsunuz", "editDomain": "Alan Adını Düzenle", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Sil", "publicIpEndpoint": "Uç Nokta", "lastTriggeredAt": "Son Tetikleyici", - "reject": "Reddet" + "reject": "Reddet", + "uptimeDaysAgo": "{count} gün önce", + "uptimeToday": "Bugün", + "uptimeNoDataAvailable": "Veri yok", + "uptimeSuffix": "çalışma süresi", + "uptimeDowntimeSuffix": "çalışma dışı", + "uptimeTooltipUptimeLabel": "Çalışma süresi", + "uptimeTooltipDowntimeLabel": "Çalışma dışı", + "uptimeOngoing": "devam eden", + "uptimeNoMonitoringData": "İzleme verisi yok", + "uptimeNoData": "Veri yok", + "uptimeMiniBarDown": "Kapalı", + "uptimeSectionTitle": "Çalışma Süresi", + "uptimeSectionDescription": "Son {days} gün boyunca kullanılabilirlik", + "uptimeAddAlert": "Uyarı Ekle", + "uptimeViewAlerts": "Uyarıları Görüntüle", + "uptimeCreateEmailAlert": "E-posta Uyarısı Oluştur", + "uptimeAlertDescriptionSite": "Bu site çevrimdışıyken veya yeniden çevrimiçi olduğunda e-posta ile bildirim alın.", + "uptimeAlertDescriptionResource": "Bu kaynak çevrimdışıyken veya yeniden çevrimiçi olduğunda e-posta ile bildirim alın.", + "uptimeAlertNamePlaceholder": "Uyarı adı", + "uptimeAdditionalEmails": "Ek E-postalar", + "uptimeCreateAlert": "Uyarı Oluştur", + "uptimeAlertNoRecipients": "Alıcı yok", + "uptimeAlertNoRecipientsDescription": "Lütfen en az bir kullanıcı, rol veya e-posta ekleyin.", + "uptimeAlertCreated": "Uyarı oluşturuldu", + "uptimeAlertCreatedDescription": "Durum değiştiğinde haberdar edileceksiniz.", + "uptimeAlertCreateFailed": "Uyarı oluşturulamadı", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Anahtar", + "webhookHeaderValuePlaceholder": "Değer", + "alertLabel": "Uyarı", + "domainPickerWildcardSubdomainNotAllowed": "Genel alt alanlara izin verilmiyor.", + "domainPickerWildcardCertWarning": "Genel kaynaklar düzgün çalışmak için ek yapılandırma gerektirebilir.", + "domainPickerWildcardCertWarningLink": "Daha fazla bilgi", + "health": "Sağlık" } From bd866a5fd2fdcab9ca5293f987da03c371980ce9 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:18 -0700 Subject: [PATCH 075/131] New translations en-us.json (Chinese Simplified) --- messages/zh-CN.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 1a79d3c35..58ee66d44 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "我已经复制了配置信息", "searchSitesProgress": "搜索站点...", "siteAdd": "添加站点", + "sitesTableViewPublicResources": "查看公共资源", + "sitesTableViewPrivateResources": "查看私有资源", "siteInstallNewt": "安装 Newt", "siteInstallNewtDescription": "在您的系统中运行 Newt", "WgConfiguration": "WireGuard 配置", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "网站已更新。", "siteGeneralDescription": "配置此站点的常规设置", "siteSettingDescription": "配置站点设置", + "siteResourcesTab": "资源", + "siteResourcesNoneOnSite": "此站点尚无公开或私人资源。", + "siteResourcesSectionPublic": "公共资源", + "siteResourcesSectionPrivate": "私有资源", + "siteResourcesSectionPublicDescription": "通过域名或端口公开的资源。", + "siteResourcesSectionPrivateDescription": "通过站点可在您的私有网络上访问的资源。", + "siteResourcesViewAllPublic": "查看所有资源", + "siteResourcesViewAllPrivate": "查看所有资源", + "siteResourcesDialogDescription": "此站点的公开和私有资源概览。", + "siteResourcesShowMore": "显示更多", + "siteResourcesPermissionDenied": "您无权列出这些资源。", + "siteResourcesEmptyPublic": "尚无针对该站点的公共资源。", + "siteResourcesEmptyPrivate": "尚无与此站点关联的私有资源。", + "siteResourcesHowToAccess": "如何访问", + "siteResourcesTargetsOnSite": "此站点上的目标", "siteSetting": "{siteName} 设置", "siteNewtTunnel": "新站点 (推荐)", "siteNewtTunnelDescription": "最简单的方式来创建任何网络的入口。没有额外的设置。", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "健康检查状态变更", "alertingTriggerResourceHealthy": "资源正常", "alertingTriggerResourceUnhealthy": "资源不正常", + "alertingTriggerResourceDegraded": "资源降级", "alertingSearchHealthChecks": "搜索健康检查…", "alertingHealthChecksEmpty": "无可用健康检查。", "alertingTriggerResourceToggle": "资源状态变更", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "创建初始服务器管理员帐户。 只能存在一个服务器管理员。 您可以随时更改这些凭据。", "createAdminAccount": "创建管理员帐户", "setupErrorCreateAdmin": "创建服务器管理员账户时发生错误。", - "certificateStatus": "证书状态", + "certificateStatus": "证书", "loading": "加载中", "loadingAnalytics": "加载分析", "restart": "重启", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "配置健康检查", "configureHealthCheckDescription": "为 {target} 设置健康监控", "enableHealthChecks": "启用健康检查", + "healthCheckDisabledStateDescription": "禁用后,站点不会进行健康检查,状态将被视为未知。", "enableHealthChecksDescription": "监视此目标的健康状况。如果需要,您可以监视一个不同的终点。", "healthScheme": "方法", "healthSelectScheme": "选择方法", @@ -1947,6 +1966,8 @@ "httpMethod": "HTTP 方法", "selectHttpMethod": "选择 HTTP 方法", "domainPickerSubdomainLabel": "子域名", + "domainPickerWildcard": "通配符", + "domainPickerWildcardPaidOnly": "通配符子域是付费功能。请升级以使用此功能。", "domainPickerBaseDomainLabel": "根域名", "domainPickerSearchDomains": "搜索域名...", "domainPickerNoDomainsFound": "未找到域名", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "此地址是组织实用子网的一部分。它用来使用内部DNS解析来解析别名记录。", "resourcesTableClients": "客户端", "resourcesTableAndOnlyAccessibleInternally": "且仅在与客户端连接时可内部访问。", - "resourcesTableNoTargets": "没有目标", "resourcesTableHealthy": "健康的", "resourcesTableDegraded": "降级", - "resourcesTableOffline": "离线的", + "resourcesTableUnhealthy": "不健康", "resourcesTableUnknown": "未知的", "resourcesTableNotMonitored": "未监视的", + "resourcesTableNoTargets": "无目标", "editInternalResourceDialogEditClientResource": "编辑私有资源", "editInternalResourceDialogUpdateResourceProperties": "更新{resourceName}的资源配置和访问控制。", "editInternalResourceDialogResourceProperties": "资源属性", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "已验证", "domainPickerUnverified": "未验证", "domainPickerManual": "手动", - "domainPickerInvalidSubdomainStructure": "此子域包含无效的字符或结构。当您保存时,它将被自动清除。", + "domainPickerInvalidSubdomainStructure": "保存时将清除无效字符。", "domainPickerError": "错误", "domainPickerErrorLoadDomains": "加载组织域名失败", "domainPickerErrorCheckAvailability": "检查域可用性失败", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "添加客户端", "editInternalResourceDialogDestinationLabel": "目标", "editInternalResourceDialogDestinationDescription": "指定内部资源的目标地址。根据选择的模式,这可以是主机名、IP地址或CIDR范围。可选的,设置一个内部DNS别名以便于识别。", + "internalResourceFormMultiSiteRoutingHelp": "选择多个站点可以实现高可用性的弹性路由和故障转移。", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "了解更多", "editInternalResourceDialogPortRestrictionsDescription": "限制访问特定的TCP/UDP端口或允许/阻止所有端口。", "createInternalResourceDialogHttpConfiguration": "HTTP 配置", "createInternalResourceDialogHttpConfigurationDescription": "选择客户将使用的域名通过 HTTP 或 HTTPS 访问此资源。", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "预计完成时间(可选)", "privateMaintenanceScreenTitle": "私有占位符界面", "privateMaintenanceScreenMessage": "此域名正在私有资源上使用。请连接 Pangolin 客户端以访问此资源。", + "privateMaintenanceScreenSteps": "连接后,如果您仍然看到此消息,说明您的浏览器的DNS缓存可能仍指向旧地址。解决方法:完全关闭并重新打开此标签页或浏览器,然后返回此页面。", "maintenanceTime": "例如,2小时,11月1日下午5:00", "maintenanceEstimatedTimeDescription": "您期望维护完成的时间", "editDomain": "编辑域名", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "删除", "publicIpEndpoint": "终端", "lastTriggeredAt": "最后触发", - "reject": "拒绝" + "reject": "拒绝", + "uptimeDaysAgo": "{count} 天前", + "uptimeToday": "今天", + "uptimeNoDataAvailable": "暂无数据", + "uptimeSuffix": "正常运行时间", + "uptimeDowntimeSuffix": "停机时间", + "uptimeTooltipUptimeLabel": "正常运行", + "uptimeTooltipDowntimeLabel": "停机", + "uptimeOngoing": "正在进行", + "uptimeNoMonitoringData": "无监控数据", + "uptimeNoData": "无数据", + "uptimeMiniBarDown": "停机", + "uptimeSectionTitle": "正常运行时间", + "uptimeSectionDescription": "过去 {days} 天的可用性", + "uptimeAddAlert": "添加警报", + "uptimeViewAlerts": "查看警报", + "uptimeCreateEmailAlert": "创建电子邮件警报", + "uptimeAlertDescriptionSite": "当此站点下线或恢复上线时,将通过电子邮件通知您。", + "uptimeAlertDescriptionResource": "当此资源下线或恢复上线时,将通过电子邮件通知您。", + "uptimeAlertNamePlaceholder": "警报名称", + "uptimeAdditionalEmails": "附加电子邮件", + "uptimeCreateAlert": "创建警报", + "uptimeAlertNoRecipients": "无收件人", + "uptimeAlertNoRecipientsDescription": "请至少添加一个用户、角色或电子邮件进行通知。", + "uptimeAlertCreated": "警报已创建", + "uptimeAlertCreatedDescription": "状态变化时将通知您。", + "uptimeAlertCreateFailed": "创建警报失败", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "关键字", + "webhookHeaderValuePlaceholder": "值", + "alertLabel": "警报", + "domainPickerWildcardSubdomainNotAllowed": "不允许使用通配符子域。", + "domainPickerWildcardCertWarning": "通配符资源可能需要额外配置才能正常工作。", + "domainPickerWildcardCertWarningLink": "了解更多", + "health": "健康" } From 4a3035d5974075d32313ba3eaa25b2a1b824dcfd Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:20 -0700 Subject: [PATCH 076/131] New translations en-us.json (Norwegian Bokmal) --- messages/nb-NO.json | 70 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 6 deletions(-) diff --git a/messages/nb-NO.json b/messages/nb-NO.json index 4cf5159d8..e44022572 100644 --- a/messages/nb-NO.json +++ b/messages/nb-NO.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "Jeg har kopiert konfigurasjonen", "searchSitesProgress": "Søker i områder...", "siteAdd": "Legg til område", + "sitesTableViewPublicResources": "Vis offentlige ressurser", + "sitesTableViewPrivateResources": "Vis private ressurser", "siteInstallNewt": "Installer Newt", "siteInstallNewtDescription": "Få Newt til å kjøre på systemet ditt", "WgConfiguration": "WireGuard Konfigurasjon", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "Området har blitt oppdatert.", "siteGeneralDescription": "Konfigurer de generelle innstillingene for dette området", "siteSettingDescription": "Konfigurere innstillingene på nettstedet", + "siteResourcesTab": "Ressurser", + "siteResourcesNoneOnSite": "Dette nettstedet har ingen offentlige eller private ressurser enda.", + "siteResourcesSectionPublic": "Offentlige ressurser", + "siteResourcesSectionPrivate": "Private ressurser", + "siteResourcesSectionPublicDescription": "Ressurser eksponert eksternt gjennom domener eller porter.", + "siteResourcesSectionPrivateDescription": "Ressurser tilgjengelig på ditt private nettverk gjennom nettstedet.", + "siteResourcesViewAllPublic": "Vis alle ressurser", + "siteResourcesViewAllPrivate": "Vis alle ressurser", + "siteResourcesDialogDescription": "Oversikt over offentlige og private ressurser assosiert med dette nettstedet.", + "siteResourcesShowMore": "Vis mer", + "siteResourcesPermissionDenied": "Du har ikke tillatelse til å liste opp disse ressursene.", + "siteResourcesEmptyPublic": "Ingen offentlige ressurser retter seg mot dette nettstedet enda.", + "siteResourcesEmptyPrivate": "Ingen private ressurser er assosiert med dette nettstedet enda.", + "siteResourcesHowToAccess": "Hvordan få tilgang", + "siteResourcesTargetsOnSite": "Mål på dette nettstedet", "siteSetting": "{siteName} Innstillinger", "siteNewtTunnel": "Nyhetsnettsted (anbefalt)", "siteNewtTunnelDescription": "Lekkeste måte å lage et inngangspunkt til ethvert nettverk. Ingen ekstra oppsett på.", @@ -1404,7 +1421,7 @@ "alertingSpecificResourcesDescription": "Velg spesifikke ressurser for overvåking", "alertingSelectResources": "Velg ressurser…", "alertingResourcesSelected": "{count} ressurser valgt", - "alertingResourcesEmpty": "No resources with targets in the first 10 results.", + "alertingResourcesEmpty": "Ingen ressurser med mål i de første 10 resultatene.", "alertingSectionTrigger": "Utløser", "alertingTrigger": "Når skal det varsles", "alertingTriggerSiteOnline": "Nettsted er online", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "Endringer i helsekontrollstatus", "alertingTriggerResourceHealthy": "Ressurs sunn", "alertingTriggerResourceUnhealthy": "Ressurs usunn", + "alertingTriggerResourceDegraded": "Ressurs forringet", "alertingSearchHealthChecks": "Søk i helsekontroller…", "alertingHealthChecksEmpty": "Ingen tilgjengelige helsekontroller.", "alertingTriggerResourceToggle": "Endringer i ressursstatus", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Opprett den første serveradministratorkontoen. Det kan bare finnes én serveradministrator. Du kan alltid endre denne påloggingsinformasjonen senere.", "createAdminAccount": "Opprett administratorkonto", "setupErrorCreateAdmin": "En feil oppstod under opprettelsen av serveradministratorkontoen.", - "certificateStatus": "Sertifikatstatus", + "certificateStatus": "Sertifikat", "loading": "Laster inn", "loadingAnalytics": "Laster inn analyser", "restart": "Start på nytt", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Konfigurer Helsekontroll", "configureHealthCheckDescription": "Sett opp helsekontroll for {target}", "enableHealthChecks": "Aktiver Helsekontroller", + "healthCheckDisabledStateDescription": "Når deaktivert, vil ikke nettstedet utføre helsekontroller, og tilstanden vil anses som ukjent.", "enableHealthChecksDescription": "Overvåk helsen til dette målet. Du kan overvåke et annet endepunkt enn målet hvis nødvendig.", "healthScheme": "Metode", "healthSelectScheme": "Velg metode", @@ -1947,6 +1966,8 @@ "httpMethod": "HTTP-metode", "selectHttpMethod": "Velg HTTP-metode", "domainPickerSubdomainLabel": "Underdomene", + "domainPickerWildcard": "Jokertegn", + "domainPickerWildcardPaidOnly": "Jokertegnsubdomener er en betalt funksjon. Vennligst oppgrader for å få tilgang til denne funksjonen.", "domainPickerBaseDomainLabel": "Grunndomene", "domainPickerSearchDomains": "Søk i domener...", "domainPickerNoDomainsFound": "Ingen domener funnet", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Denne adressen er en del av organisasjonens undernettverk. Den brukes til å løse aliasposter ved hjelp av intern DNS-oppløsning.", "resourcesTableClients": "Klienter", "resourcesTableAndOnlyAccessibleInternally": "og er kun tilgjengelig internt når de er koblet til med en klient.", - "resourcesTableNoTargets": "Ingen mål", "resourcesTableHealthy": "Frisk", "resourcesTableDegraded": "Nedgradert", - "resourcesTableOffline": "Frakoblet", + "resourcesTableUnhealthy": "Usunn", "resourcesTableUnknown": "Ukjent", "resourcesTableNotMonitored": "Ikke overvåket", + "resourcesTableNoTargets": "Ingen mål", "editInternalResourceDialogEditClientResource": "Rediger Private Ressurser", "editInternalResourceDialogUpdateResourceProperties": "Oppdater ressurskonfigurasjonen og få tilgangskontroller for {resourceName}", "editInternalResourceDialogResourceProperties": "Ressursegenskaper", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Bekreftet", "domainPickerUnverified": "Uverifisert", "domainPickerManual": "Manuell", - "domainPickerInvalidSubdomainStructure": "Dette underdomenet inneholder ugyldige tegn eller struktur. Det vil automatisk bli utsatt når du lagrer.", + "domainPickerInvalidSubdomainStructure": "Ugyldige tegn vil bli sanitert når de er lagret.", "domainPickerError": "Feil", "domainPickerErrorLoadDomains": "Kan ikke laste organisasjonens domener", "domainPickerErrorCheckAvailability": "Kunne ikke kontrollere domenetilgjengelighet", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Legg til klienter", "editInternalResourceDialogDestinationLabel": "Destinasjon", "editInternalResourceDialogDestinationDescription": "Spesifiser destinasjonsadressen for den interne ressursen. Dette kan være et vertsnavn, IP-adresse eller CIDR-sjikt avhengig av valgt modus. Valgfrie oppsett av intern DNS-alias for enklere identifikasjon.", + "internalResourceFormMultiSiteRoutingHelp": "Valg av flere nettsteder muliggjør motstandskraftig ruting og failover for høy tilgjengelighet.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Lær mer", "editInternalResourceDialogPortRestrictionsDescription": "Begrens tilgang til spesifikke TCP/UDP-porter eller tillate/blokkere alle porter.", "createInternalResourceDialogHttpConfiguration": "HTTP-konfigurasjon", "createInternalResourceDialogHttpConfigurationDescription": "Velg domenet klienter vil bruke for å nå denne ressursen via HTTP eller HTTPS.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Estimert ferdigstillelsestid (Valgfritt)", "privateMaintenanceScreenTitle": "Privat plassholder skjerm", "privateMaintenanceScreenMessage": "Dette domenet brukes på en privatressurs. Koble til ved å bruke Pangolin-klienten for å få tilgang til denne ressursen.", + "privateMaintenanceScreenSteps": "Når du er koblet til, hvis du fortsatt ser denne meldingen, peker kanskje DNS-cachen til nettleseren din fortsatt til den gamle adressen. For å rette på dette: lukk og åpne denne fanen eller nettleseren på nytt, og naviger deretter tilbake til denne siden.", "maintenanceTime": "f.eks. 2 timer, 1. november kl. 17:00", "maintenanceEstimatedTimeDescription": "Når du forventer at vedlikeholdet er ferdigstilt", "editDomain": "Rediger domene", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Slett", "publicIpEndpoint": "Endepunkt", "lastTriggeredAt": "Siste utløste", - "reject": "Avvis" + "reject": "Avvis", + "uptimeDaysAgo": "{count} days ago", + "uptimeToday": "I dag", + "uptimeNoDataAvailable": "Ingen data tilgjengelig", + "uptimeSuffix": "oppetid", + "uptimeDowntimeSuffix": "nedetid", + "uptimeTooltipUptimeLabel": "Oppetid", + "uptimeTooltipDowntimeLabel": "Nedetid", + "uptimeOngoing": "pågående", + "uptimeNoMonitoringData": "Ingen overvåkingsdata", + "uptimeNoData": "Ingen data", + "uptimeMiniBarDown": "Nede", + "uptimeSectionTitle": "Oppetid", + "uptimeSectionDescription": "Tilgjengelighet de siste {days} dagene", + "uptimeAddAlert": "Legg til varsling", + "uptimeViewAlerts": "Vis varsler", + "uptimeCreateEmailAlert": "Opprett e-postvarsel", + "uptimeAlertDescriptionSite": "Få beskjed på e-post når dette nettstedet går offline eller kommer tilbake online.", + "uptimeAlertDescriptionResource": "Få beskjed på e-post når denne ressursen går offline eller kommer tilbake online.", + "uptimeAlertNamePlaceholder": "Varslingsnavn", + "uptimeAdditionalEmails": "Flere e-poster", + "uptimeCreateAlert": "Opprett varsling", + "uptimeAlertNoRecipients": "Ingen mottakere", + "uptimeAlertNoRecipientsDescription": "Vennligst legg til minst én bruker, rolle, eller e-post for å varsle.", + "uptimeAlertCreated": "Varsel opprettet", + "uptimeAlertCreatedDescription": "Du vil bli varslet når dette endrer status.", + "uptimeAlertCreateFailed": "Kunne ikke opprette varsel", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Nøkkel", + "webhookHeaderValuePlaceholder": "Verdi", + "alertLabel": "Varsel", + "domainPickerWildcardSubdomainNotAllowed": "Jokertegnsubdomener er ikke tillatt.", + "domainPickerWildcardCertWarning": "Jokertegnressurser kan kreve ekstra konfigurasjon for å fungere skikkelig.", + "domainPickerWildcardCertWarningLink": "Lær mer", + "health": "Helse" } From 92822a20e8e49b72f92de421216f276675105230 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Mon, 27 Apr 2026 20:25:22 -0700 Subject: [PATCH 077/131] New translations en-us.json (Spanish) --- messages/es-ES.json | 68 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/messages/es-ES.json b/messages/es-ES.json index e119adc1b..cf8c64f96 100644 --- a/messages/es-ES.json +++ b/messages/es-ES.json @@ -93,6 +93,8 @@ "siteConfirmCopy": "He copiado la configuración", "searchSitesProgress": "Buscar sitios...", "siteAdd": "Añadir sitio", + "sitesTableViewPublicResources": "Ver Recursos Públicos", + "sitesTableViewPrivateResources": "Ver Recursos Privados", "siteInstallNewt": "Instalar Newt", "siteInstallNewtDescription": "Recibe Newt corriendo en tu sistema", "WgConfiguration": "Configuración de Wirex Guard", @@ -110,6 +112,21 @@ "siteUpdatedDescription": "El sitio ha sido actualizado.", "siteGeneralDescription": "Configurar la configuración general de este sitio", "siteSettingDescription": "Configurar los ajustes en el sitio", + "siteResourcesTab": "Recursos", + "siteResourcesNoneOnSite": "Este sitio aún no tiene recursos públicos o privados.", + "siteResourcesSectionPublic": "Recursos Públicos", + "siteResourcesSectionPrivate": "Recursos Privados", + "siteResourcesSectionPublicDescription": "Recursos expuestos externamente a través de dominios o puertos.", + "siteResourcesSectionPrivateDescription": "Recursos disponibles en tu red privada a través del sitio.", + "siteResourcesViewAllPublic": "Ver todos los recursos", + "siteResourcesViewAllPrivate": "Ver todos los recursos", + "siteResourcesDialogDescription": "Descripción general de los recursos públicos y privados asociados con este sitio.", + "siteResourcesShowMore": "Mostrar más", + "siteResourcesPermissionDenied": "No tienes permiso para listar estos recursos.", + "siteResourcesEmptyPublic": "Aún no hay recursos públicos apuntando a este sitio.", + "siteResourcesEmptyPrivate": "Aún no hay recursos privados asociados con este sitio.", + "siteResourcesHowToAccess": "Cómo acceder", + "siteResourcesTargetsOnSite": "Objetivos en este sitio", "siteSetting": "Ajustes {siteName}", "siteNewtTunnel": "Sitio nuevo (recomendado)", "siteNewtTunnelDescription": "La forma más fácil de crear un punto de entrada en cualquier red. Sin configuración extra.", @@ -1415,6 +1432,7 @@ "alertingTriggerHcToggle": "El estado del chequeo de salud cambia", "alertingTriggerResourceHealthy": "Recurso saludable", "alertingTriggerResourceUnhealthy": "Recurso no saludable", + "alertingTriggerResourceDegraded": "Recurso degradado", "alertingSearchHealthChecks": "Buscar chequeos de salud…", "alertingHealthChecksEmpty": "No hay chequeos de salud disponibles.", "alertingTriggerResourceToggle": "El estado del recurso cambia", @@ -1578,7 +1596,7 @@ "initialSetupDescription": "Cree la cuenta de administrador del servidor inicial. Solo puede existir un administrador del servidor. Siempre puede cambiar estas credenciales más tarde.", "createAdminAccount": "Crear cuenta de administrador", "setupErrorCreateAdmin": "Se produjo un error al crear la cuenta de administrador del servidor.", - "certificateStatus": "Estado del certificado", + "certificateStatus": "Certificado", "loading": "Cargando", "loadingAnalytics": "Cargando analíticas", "restart": "Reiniciar", @@ -1886,6 +1904,7 @@ "configureHealthCheck": "Configurar Chequeo de Salud", "configureHealthCheckDescription": "Configura la monitorización de salud para {target}", "enableHealthChecks": "Activar Chequeos de Salud", + "healthCheckDisabledStateDescription": "Cuando está deshabilitado, el sitio no realizará comprobaciones de salud y el estado se considerará desconocido.", "enableHealthChecksDescription": "Controlar la salud de este objetivo. Puedes supervisar un punto final diferente al objetivo si es necesario.", "healthScheme": "Método", "healthSelectScheme": "Seleccionar método", @@ -1947,6 +1966,8 @@ "httpMethod": "Método HTTP", "selectHttpMethod": "Seleccionar método HTTP", "domainPickerSubdomainLabel": "Subdominio", + "domainPickerWildcard": "Comodín", + "domainPickerWildcardPaidOnly": "Los subdominios comodín son una característica paga. Por favor, mejora tu plan para acceder a esta característica.", "domainPickerBaseDomainLabel": "Dominio base", "domainPickerSearchDomains": "Buscar dominios...", "domainPickerNoDomainsFound": "No se encontraron dominios", @@ -1972,12 +1993,12 @@ "resourcesTableAliasAddressInfo": "Esta dirección es parte de la subred de utilidad de la organización. Se utiliza para resolver registros de alias usando resolución DNS interna.", "resourcesTableClients": "Clientes", "resourcesTableAndOnlyAccessibleInternally": "y solo son accesibles internamente cuando se conectan con un cliente.", - "resourcesTableNoTargets": "Sin objetivos", "resourcesTableHealthy": "Saludable", "resourcesTableDegraded": "Degrado", - "resourcesTableOffline": "Desconectado", + "resourcesTableUnhealthy": "No saludable", "resourcesTableUnknown": "Desconocido", "resourcesTableNotMonitored": "No supervisado", + "resourcesTableNoTargets": "Sin objetivos", "editInternalResourceDialogEditClientResource": "Editar recurso privado", "editInternalResourceDialogUpdateResourceProperties": "Actualizar la configuración del recurso y los controles de acceso para {resourceName}", "editInternalResourceDialogResourceProperties": "Propiedades del recurso", @@ -2318,7 +2339,7 @@ "domainPickerVerified": "Verificado", "domainPickerUnverified": "Sin verificar", "domainPickerManual": "Manual", - "domainPickerInvalidSubdomainStructure": "Este subdominio contiene caracteres o estructura no válidos. Se limpiará automáticamente al guardar.", + "domainPickerInvalidSubdomainStructure": "Los caracteres inválidos serán saneados al guardar.", "domainPickerError": "Error", "domainPickerErrorLoadDomains": "Error al cargar los dominios de la organización", "domainPickerErrorCheckAvailability": "No se pudo comprobar la disponibilidad del dominio", @@ -2863,6 +2884,8 @@ "editInternalResourceDialogAddClients": "Agregar clientes", "editInternalResourceDialogDestinationLabel": "Destino", "editInternalResourceDialogDestinationDescription": "Especifique la dirección de destino para el recurso interno. Puede ser un nombre de host, dirección IP o rango CIDR dependiendo del modo seleccionado. Opcionalmente establezca un alias DNS interno para una identificación más fácil.", + "internalResourceFormMultiSiteRoutingHelp": "Seleccionar múltiples sitios habilita el enrutamiento resistente y la conmutación por error para alta disponibilidad.", + "internalResourceFormMultiSiteRoutingHelpLearnMore": "Más información", "editInternalResourceDialogPortRestrictionsDescription": "Restringir el acceso a puertos TCP/UDP específicos o permitir/bloquear todos los puertos.", "createInternalResourceDialogHttpConfiguration": "Configuración HTTP", "createInternalResourceDialogHttpConfigurationDescription": "Elija el dominio que los clientes usarán para alcanzar este recurso a través de HTTP o HTTPS.", @@ -2908,6 +2931,7 @@ "maintenancePageTimeTitle": "Tiempo estimado de finalización (Opcional)", "privateMaintenanceScreenTitle": "Pantalla de marcador de posición privada", "privateMaintenanceScreenMessage": "Este dominio se está utilizando en un recurso privado. Conéctese usando el cliente Pangolin para acceder a este recurso.", + "privateMaintenanceScreenSteps": "Una vez conectado, si sigues viendo este mensaje, la caché de DNS de tu navegador puede seguir apuntando a la dirección antigua. Para solucionarlo: cierra por completo y vuelve a abrir esta pestaña o tu navegador, luego regresa a esta página.", "maintenanceTime": "Ej., 2 horas, 1 de noviembre a las 5:00 PM", "maintenanceEstimatedTimeDescription": "Cuando espera que el mantenimiento esté terminado", "editDomain": "Editar dominio", @@ -3142,5 +3166,39 @@ "idpDeleteAllOrgsMenu": "Eliminar", "publicIpEndpoint": "Punto final", "lastTriggeredAt": "Último disparo", - "reject": "Rechazar" + "reject": "Rechazar", + "uptimeDaysAgo": "Hace {count} días", + "uptimeToday": "Hoy", + "uptimeNoDataAvailable": "No hay datos disponibles", + "uptimeSuffix": "disponibilidad", + "uptimeDowntimeSuffix": "tiempo de inactividad", + "uptimeTooltipUptimeLabel": "Disponibilidad", + "uptimeTooltipDowntimeLabel": "Tiempo de inactividad", + "uptimeOngoing": "en curso", + "uptimeNoMonitoringData": "No hay datos de monitoreo", + "uptimeNoData": "Sin datos", + "uptimeMiniBarDown": "Caído", + "uptimeSectionTitle": "Disponibilidad", + "uptimeSectionDescription": "Disponibilidad durante los últimos {days} días", + "uptimeAddAlert": "Agregar alerta", + "uptimeViewAlerts": "Ver alertas", + "uptimeCreateEmailAlert": "Crear alerta de correo electrónico", + "uptimeAlertDescriptionSite": "Recibe notificaciones por correo electrónico cuando este sitio esté fuera de línea o vuelva en línea.", + "uptimeAlertDescriptionResource": "Recibe notificaciones por correo electrónico cuando este recurso esté fuera de línea o vuelva en línea.", + "uptimeAlertNamePlaceholder": "Nombre de la alerta", + "uptimeAdditionalEmails": "Emails adicionales", + "uptimeCreateAlert": "Crear alerta", + "uptimeAlertNoRecipients": "Sin destinatarios", + "uptimeAlertNoRecipientsDescription": "Por favor, agrega al menos un usuario, rol o correo electrónico para notificación.", + "uptimeAlertCreated": "Alerta creada", + "uptimeAlertCreatedDescription": "Serás notificado cuando cambie de estado.", + "uptimeAlertCreateFailed": "Error al crear la alerta", + "webhookUrlLabel": "URL", + "webhookHeaderKeyPlaceholder": "Clave", + "webhookHeaderValuePlaceholder": "Valor", + "alertLabel": "Alerta", + "domainPickerWildcardSubdomainNotAllowed": "No se permiten subdominios comodín.", + "domainPickerWildcardCertWarning": "Los recursos comodín pueden requerir configuración adicional para funcionar correctamente.", + "domainPickerWildcardCertWarningLink": "Más información", + "health": "Salud" } From 592ca64253acdc5c8867c2e882a85cd0ec2b436d Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 09:57:19 -0700 Subject: [PATCH 078/131] Fix delete --- server/routers/siteResource/deleteSiteResource.ts | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/server/routers/siteResource/deleteSiteResource.ts b/server/routers/siteResource/deleteSiteResource.ts index 8d08d545d..df43d5c25 100644 --- a/server/routers/siteResource/deleteSiteResource.ts +++ b/server/routers/siteResource/deleteSiteResource.ts @@ -67,22 +67,9 @@ export async function deleteSiteResource( // Delete the site resource const [removedSiteResource] = await trx .delete(siteResources) - .where(and(eq(siteResources.siteResourceId, siteResourceId))) + .where(eq(siteResources.siteResourceId, siteResourceId)) .returning(); - // not sure why this is here... - // const [newt] = await trx - // .select() - // .from(newts) - // .where(eq(newts.siteId, removedSiteResource.siteId)) - // .limit(1); - - // if (!newt) { - // return next( - // createHttpError(HttpCode.NOT_FOUND, "Newt not found") - // ); - // } - await rebuildClientAssociationsFromSiteResource( removedSiteResource, trx From 8783c47a3cb87d8863bfcb75e05700e22519d03b Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 11:21:32 -0700 Subject: [PATCH 079/131] Dont allow clicking the wildcard resource link --- src/components/ResourceInfoBox.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/ResourceInfoBox.tsx b/src/components/ResourceInfoBox.tsx index 4ceadb4f7..ca5ded4c5 100644 --- a/src/components/ResourceInfoBox.tsx +++ b/src/components/ResourceInfoBox.tsx @@ -40,10 +40,14 @@ export default function ResourceInfoBox({}: ResourceInfoBoxType) { URL - + {resource.wildcard ? ( + {fullUrl} + ) : ( + + )} From 208289f498caa886e05d96f197f3f7d7b3c35004 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 12:02:21 -0700 Subject: [PATCH 080/131] Select all networks to prevent delete issues --- server/lib/rebuildClientAssociations.ts | 61 +++++++++++++------------ 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/server/lib/rebuildClientAssociations.ts b/server/lib/rebuildClientAssociations.ts index 40c5a5bf7..a5c9a9321 100644 --- a/server/lib/rebuildClientAssociations.ts +++ b/server/lib/rebuildClientAssociations.ts @@ -180,36 +180,41 @@ export async function rebuildClientAssociationsFromSiteResource( /////////// process the client-siteResource associations /////////// - // get all of the clients associated with other resources in the same network, - // joined through siteNetworks so we know which siteId each client belongs to - const allUpdatedClientsFromOtherResourcesOnThisSite = siteResource.networkId - ? await trx - .select({ - clientId: clientSiteResourcesAssociationsCache.clientId, - siteId: siteNetworks.siteId - }) - .from(clientSiteResourcesAssociationsCache) - .innerJoin( - siteResources, - eq( - clientSiteResourcesAssociationsCache.siteResourceId, - siteResources.siteResourceId - ) - ) - .innerJoin( - siteNetworks, - eq(siteNetworks.networkId, siteResources.networkId) - ) - .where( - and( - eq(siteResources.networkId, siteResource.networkId), - ne( - siteResources.siteResourceId, - siteResource.siteResourceId + // get all of the clients associated with other site resources that share + // any of the same sites as this site resource (via siteNetworks). We can't + // simply filter by networkId since each site resource has its own network; + // two site resources serving the same site typically belong to different + // networks that both happen to include the site through siteNetworks. + const sitesListSiteIds = sitesList.map((s) => s.siteId); + const allUpdatedClientsFromOtherResourcesOnThisSite = + sitesListSiteIds.length > 0 + ? await trx + .select({ + clientId: clientSiteResourcesAssociationsCache.clientId, + siteId: siteNetworks.siteId + }) + .from(clientSiteResourcesAssociationsCache) + .innerJoin( + siteResources, + eq( + clientSiteResourcesAssociationsCache.siteResourceId, + siteResources.siteResourceId ) ) - ) - : []; + .innerJoin( + siteNetworks, + eq(siteNetworks.networkId, siteResources.networkId) + ) + .where( + and( + inArray(siteNetworks.siteId, sitesListSiteIds), + ne( + siteResources.siteResourceId, + siteResource.siteResourceId + ) + ) + ) + : []; // Build a per-site map so the loop below can check by siteId rather than // across the entire network. From b81ae3d9982ae81af392af94ae0c5cec76a2c8b9 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 15:14:43 -0700 Subject: [PATCH 081/131] Seed satatus data for resources, sites, and hc --- server/setup/scriptsPg/1.18.0.ts | 102 ++++++++++++++++++++++++--- server/setup/scriptsSqlite/1.18.0.ts | 88 ++++++++++++++++++++++- 2 files changed, 179 insertions(+), 11 deletions(-) diff --git a/server/setup/scriptsPg/1.18.0.ts b/server/setup/scriptsPg/1.18.0.ts index fe43112a2..debfaee48 100644 --- a/server/setup/scriptsPg/1.18.0.ts +++ b/server/setup/scriptsPg/1.18.0.ts @@ -1,5 +1,6 @@ import { db } from "@server/db/pg/driver"; import { sql } from "drizzle-orm"; +import { SiJfrog } from "react-icons/si"; const version = "1.18.0"; @@ -67,11 +68,12 @@ export default async function migration() { FROM "siteResources" sr WHERE sr."siteId" IS NOT NULL` ); - const existingSiteResourcesForNetwork = siteResourcesForNetworkQuery.rows as { - siteResourceId: number; - orgId: string; - siteId: number; - }[]; + const existingSiteResourcesForNetwork = + siteResourcesForNetworkQuery.rows as { + siteResourceId: number; + orgId: string; + siteId: number; + }[]; console.log( `Found ${existingSiteResourcesForNetwork.length} existing siteResource(s) to migrate to networks` @@ -446,10 +448,7 @@ export default async function migration() { `Migrated ${existingHealthChecks.length} targetHealthCheck row(s) with corrected IDs` ); } catch (e) { - console.error( - "Error while migrating targetHealthCheck rows:", - e - ); + console.error("Error while migrating targetHealthCheck rows:", e); throw e; } } @@ -493,5 +492,90 @@ export default async function migration() { } } + // Seed statusHistory for all existing sites + try { + const sitesQuery = await db.execute( + sql`SELECT "siteId", "orgId", "online" FROM "sites"` + ); + const allSites = sitesQuery.rows as { + siteId: number; + orgId: string; + online: boolean; + }[]; + + const now = Math.floor(Date.now() / 1000); + + for (const site of allSites) { + await db.execute(sql` + INSERT INTO "statusHistory" ("entityType", "entityId", "orgId", "status", "timestamp") + VALUES ('site', ${site.siteId}, ${site.orgId}, ${site.online ? "online" : "offline"}, ${now}) + `); + } + + console.log(`Seeded statusHistory for ${allSites.length} site(s)`); + } catch (e) { + console.error("Error while seeding statusHistory for sites:", e); + throw e; + } + + // Seed statusHistory for all existing resources + try { + const resourcesQuery = await db.execute( + sql`SELECT "resourceId", "orgId", "health" FROM "resources"` + ); + const allResources = resourcesQuery.rows as { + resourceId: number; + orgId: string; + health: string | null; + }[]; + + const now = Math.floor(Date.now() / 1000); + + for (const resource of allResources) { + await db.execute(sql` + INSERT INTO "statusHistory" ("entityType", "entityId", "orgId", "status", "timestamp") + VALUES ('resource', ${resource.resourceId}, ${resource.orgId}, ${resource.health ?? "unknown"}, ${now}) + `); + } + + console.log( + `Seeded statusHistory for ${allResources.length} resource(s)` + ); + } catch (e) { + console.error("Error while seeding statusHistory for resources:", e); + throw e; + } + + // Seed statusHistory for all existing health checks + try { + const healthChecksQuery = await db.execute( + sql`SELECT "targetHealthCheckId", "orgId", "hcHealth" FROM "targetHealthCheck"` + ); + const allHealthChecks = healthChecksQuery.rows as { + targetHealthCheckId: number; + orgId: string; + hcHealth: string | null; + }[]; + + const now = Math.floor(Date.now() / 1000); + + for (const hc of allHealthChecks) { + await db.execute(sql` + INSERT INTO "statusHistory" ("entityType", "entityId", "orgId", "status", "timestamp") + VALUES ('health_check', ${hc.targetHealthCheckId}, ${hc.orgId}, ${hc.hcHealth ?? "unknown"}, ${now}) + `); + } + + console.log( + `Seeded statusHistory for ${allHealthChecks.length} health check(s)` + ); + } catch (e) { + console.error( + "Error while seeding statusHistory for health checks:", + e + ); + throw e; + } + console.log(`${version} migration complete`); } diff --git a/server/setup/scriptsSqlite/1.18.0.ts b/server/setup/scriptsSqlite/1.18.0.ts index aba817df1..5f1718e7a 100644 --- a/server/setup/scriptsSqlite/1.18.0.ts +++ b/server/setup/scriptsSqlite/1.18.0.ts @@ -340,7 +340,6 @@ export default async function migration() { ALTER TABLE 'resources' ADD 'wildcard' integer DEFAULT false NOT NULL; ` ).run(); - })(); db.pragma("foreign_keys = ON"); @@ -364,7 +363,11 @@ export default async function migration() { const result = insertNetwork.run("resource", sr.orgId); const networkId = result.lastInsertRowid as number; insertSiteNetwork.run(sr.siteId, networkId); - updateSiteResource.run(networkId, networkId, sr.siteResourceId); + updateSiteResource.run( + networkId, + networkId, + sr.siteResourceId + ); } }); @@ -454,6 +457,87 @@ export default async function migration() { } console.log(`Migrated database`); + + // Seed statusHistory for all existing sites + const allSites = db + .prepare(`SELECT "siteId", "orgId", "online" FROM 'sites'`) + .all() as { siteId: number; orgId: string; online: number }[]; + + const insertSiteHistory = db.prepare( + `INSERT INTO 'statusHistory' ("entityType", "entityId", "orgId", "status", "timestamp") VALUES (?, ?, ?, ?, ?)` + ); + const now = Math.floor(Date.now() / 1000); + const seedSites = db.transaction(() => { + for (const site of allSites) { + insertSiteHistory.run( + "site", + site.siteId, + site.orgId, + site.online ? "online" : "offline", + now + ); + } + }); + seedSites(); + console.log(`Seeded statusHistory for ${allSites.length} site(s)`); + + // Seed statusHistory for all existing resources + const allResources = db + .prepare(`SELECT "resourceId", "orgId", "health" FROM 'resources'`) + .all() as { + resourceId: number; + orgId: string; + health: string | null; + }[]; + + const insertResourceHistory = db.prepare( + `INSERT INTO 'statusHistory' ("entityType", "entityId", "orgId", "status", "timestamp") VALUES (?, ?, ?, ?, ?)` + ); + const seedResources = db.transaction(() => { + for (const resource of allResources) { + insertResourceHistory.run( + "resource", + resource.resourceId, + resource.orgId, + resource.health ?? "unknown", + now + ); + } + }); + seedResources(); + console.log( + `Seeded statusHistory for ${allResources.length} resource(s)` + ); + + // Seed statusHistory for all existing health checks + const allHealthChecks = db + .prepare( + `SELECT "targetHealthCheckId", "orgId", "hcHealth" FROM 'targetHealthCheck'` + ) + .all() as { + targetHealthCheckId: number; + orgId: string; + hcHealth: string | null; + }[]; + + const insertHealthCheckHistory = db.prepare( + `INSERT INTO 'statusHistory' ("entityType", "entityId", "orgId", "status", "timestamp") VALUES (?, ?, ?, ?, ?)` + ); + const seedHealthChecks = db.transaction(() => { + for (const hc of allHealthChecks) { + insertHealthCheckHistory.run( + "health_check", + hc.targetHealthCheckId, + hc.orgId, + hc.hcHealth ?? "unknown", + now + ); + } + }); + seedHealthChecks(); + console.log( + `Seeded statusHistory for ${allHealthChecks.length} health check(s)` + ); } catch (e) { console.log("Failed to migrate db:", e); throw e; From 85415176ab9fc7c785c3fbc6677abeaacf32901a Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 15:41:00 -0700 Subject: [PATCH 082/131] Clean imports --- server/setup/scriptsPg/1.18.0.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/setup/scriptsPg/1.18.0.ts b/server/setup/scriptsPg/1.18.0.ts index debfaee48..3262308f8 100644 --- a/server/setup/scriptsPg/1.18.0.ts +++ b/server/setup/scriptsPg/1.18.0.ts @@ -1,6 +1,5 @@ import { db } from "@server/db/pg/driver"; import { sql } from "drizzle-orm"; -import { SiJfrog } from "react-icons/si"; const version = "1.18.0"; From 8ed9adbfae876eccd233b4ae320ce780abfc9703 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 28 Apr 2026 16:21:16 -0700 Subject: [PATCH 083/131] New translations en-us.json (German) [ci skip] --- messages/de-DE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/messages/de-DE.json b/messages/de-DE.json index 30dd1509f..c69483a68 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -1432,7 +1432,7 @@ "alertingTriggerHcToggle": "Gesundheits-Check-Status ändern", "alertingTriggerResourceHealthy": "Ressource gesund", "alertingTriggerResourceUnhealthy": "Ressource ungesund", - "alertingTriggerResourceDegraded": "Resource degraded", + "alertingTriggerResourceDegraded": "Ressource verschlechtert", "alertingSearchHealthChecks": "Gesundheits-Checks suchen…", "alertingHealthChecksEmpty": "Keine Gesundheits-Checks verfügbar.", "alertingTriggerResourceToggle": "Ressourcenstatus ändern", From 2a290626596b23ec6ea7d1b8f278285f4d052ec4 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 16:38:13 -0700 Subject: [PATCH 084/131] Use logsDb for the status history --- server/lib/statusHistory.ts | 36 +++++++++++-------- .../lib/alerts/events/healthCheckEvents.ts | 23 ++++++++---- .../lib/alerts/events/resourceEvents.ts | 10 +++--- .../private/lib/alerts/events/siteEvents.ts | 12 +++++-- server/routers/newt/registerNewt.ts | 22 ++++++++---- server/routers/site/createSite.ts | 2 +- 6 files changed, 67 insertions(+), 38 deletions(-) diff --git a/server/lib/statusHistory.ts b/server/lib/statusHistory.ts index b0ef0c927..3a9b1f6ef 100644 --- a/server/lib/statusHistory.ts +++ b/server/lib/statusHistory.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { db, statusHistory } from "@server/db"; +import { db, logsDb, statusHistory } from "@server/db"; import { and, eq, gte, asc } from "drizzle-orm"; import cache from "@server/lib/cache"; @@ -27,7 +27,7 @@ export async function getCachedStatusHistory( const nowSec = Math.floor(Date.now() / 1000); const startSec = nowSec - days * 86400; - const events = await db + const events = await logsDb .select() .from(statusHistory) .where( @@ -74,11 +74,11 @@ export const statusHistoryQuerySchema = z days: z .string() .optional() - .transform((v) => (v ? parseInt(v, 10) : 90)), + .transform((v) => (v ? parseInt(v, 10) : 90)) }) .pipe( z.object({ - days: z.number().int().min(1).max(365), + days: z.number().int().min(1).max(365) }) ); @@ -99,7 +99,14 @@ export interface StatusHistoryResponse { } export function computeBuckets( - events: { entityType: string; entityId: number; orgId: string; status: string; timestamp: number; id: number }[], + events: { + entityType: string; + entityId: number; + orgId: string; + status: string; + timestamp: number; + id: number; + }[], days: number ): { buckets: StatusHistoryDayBucket[]; totalDowntime: number } { const nowSec = Math.floor(Date.now() / 1000); @@ -121,7 +128,8 @@ export function computeBuckets( const currentStatus = lastBeforeDay?.status ?? null; - const windows: { start: number; end: number | null; status: string }[] = []; + const windows: { start: number; end: number | null; status: string }[] = + []; let dayDowntime = 0; let dayDegradedTime = 0; @@ -132,22 +140,21 @@ export function computeBuckets( if (windowStatus !== null && windowStatus !== evt.status) { const windowEnd = evt.timestamp; const isDown = - windowStatus === "offline" || - windowStatus === "unhealthy"; + windowStatus === "offline" || windowStatus === "unhealthy"; const isDegraded = windowStatus === "degraded"; if (isDown) { dayDowntime += windowEnd - windowStart; windows.push({ start: windowStart, end: windowEnd, - status: windowStatus, + status: windowStatus }); } else if (isDegraded) { dayDegradedTime += windowEnd - windowStart; windows.push({ start: windowStart, end: windowEnd, - status: windowStatus, + status: windowStatus }); } } @@ -159,22 +166,21 @@ export function computeBuckets( if (windowStatus !== null) { const finalEnd = Math.min(dayEndSec, nowSec); const isDown = - windowStatus === "offline" || - windowStatus === "unhealthy"; + windowStatus === "offline" || windowStatus === "unhealthy"; const isDegraded = windowStatus === "degraded"; if (isDown && finalEnd > windowStart) { dayDowntime += finalEnd - windowStart; windows.push({ start: windowStart, end: finalEnd, - status: windowStatus, + status: windowStatus }); } else if (isDegraded && finalEnd > windowStart) { dayDegradedTime += finalEnd - windowStart; windows.push({ start: windowStart, end: finalEnd, - status: windowStatus, + status: windowStatus }); } } @@ -225,7 +231,7 @@ export function computeBuckets( uptimePercent: Math.round(uptimePct * 100) / 100, totalDowntimeSeconds: dayDowntime, downtimeWindows: windows, - status, + status }); } diff --git a/server/private/lib/alerts/events/healthCheckEvents.ts b/server/private/lib/alerts/events/healthCheckEvents.ts index abb1e4c2b..ae9f1f05b 100644 --- a/server/private/lib/alerts/events/healthCheckEvents.ts +++ b/server/private/lib/alerts/events/healthCheckEvents.ts @@ -19,7 +19,8 @@ import { targetHealthCheck, targets, resources, - Transaction + Transaction, + logsDb } from "@server/db"; import { eq } from "drizzle-orm"; import { invalidateStatusHistoryCache } from "@server/lib/statusHistory"; @@ -52,10 +53,10 @@ export async function fireHealthCheckHealthyAlert( healthCheckTargetId?: number | null, extra?: Record, send: boolean = true, - trx: Transaction | typeof db = db, + trx: Transaction | typeof db = db ): Promise { try { - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "health_check", entityId: healthCheckId, orgId: orgId, @@ -119,7 +120,7 @@ export async function fireHealthCheckUnhealthyAlert( trx: Transaction | typeof db = db ): Promise { try { - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "health_check", entityId: healthCheckId, orgId: orgId, @@ -172,7 +173,7 @@ export async function fireHealthCheckUnknownAlert( trx: Transaction | typeof db = db ): Promise { try { - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "health_check", entityId: healthCheckId, orgId: orgId, @@ -194,7 +195,12 @@ export async function fireHealthCheckUnknownAlert( } } -async function handleResource(orgId: string, healthCheckTargetId?: number | null, send: boolean = true, trx: Transaction | typeof db = db) { +async function handleResource( + orgId: string, + healthCheckTargetId?: number | null, + send: boolean = true, + trx: Transaction | typeof db = db +) { if (!healthCheckTargetId) { return; } @@ -222,7 +228,10 @@ async function handleResource(orgId: string, healthCheckTargetId?: number | null const otherTargets = await trx .select({ hcHealth: targetHealthCheck.hcHealth }) .from(targets) - .innerJoin(targetHealthCheck, eq(targetHealthCheck.targetId, targets.targetId)) + .innerJoin( + targetHealthCheck, + eq(targetHealthCheck.targetId, targets.targetId) + ) .where(eq(targets.resourceId, resource.resourceId)); let health = "healthy"; diff --git a/server/private/lib/alerts/events/resourceEvents.ts b/server/private/lib/alerts/events/resourceEvents.ts index 006c8f622..54b40b80d 100644 --- a/server/private/lib/alerts/events/resourceEvents.ts +++ b/server/private/lib/alerts/events/resourceEvents.ts @@ -13,7 +13,7 @@ import logger from "@server/logger"; import { processAlerts } from "../processAlerts"; -import { db, statusHistory, Transaction } from "@server/db"; +import { db, logsDb, statusHistory, Transaction } from "@server/db"; import { invalidateStatusHistoryCache } from "@server/lib/statusHistory"; // --------------------------------------------------------------------------- @@ -40,7 +40,7 @@ export async function fireResourceHealthyAlert( trx: Transaction | typeof db = db ): Promise { try { - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "resource", entityId: resourceId, orgId: orgId, @@ -101,7 +101,7 @@ export async function fireResourceUnhealthyAlert( trx: Transaction | typeof db = db ): Promise { try { - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "resource", entityId: resourceId, orgId: orgId, @@ -162,7 +162,7 @@ export async function fireResourceDegradedAlert( trx: Transaction | typeof db = db ): Promise { try { - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "resource", entityId: resourceId, orgId: orgId, @@ -223,7 +223,7 @@ export async function fireResourceUnknownAlert( trx: Transaction | typeof db = db ): Promise { try { - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "resource", entityId: resourceId, orgId: orgId, diff --git a/server/private/lib/alerts/events/siteEvents.ts b/server/private/lib/alerts/events/siteEvents.ts index afb53f25f..e1871dc85 100644 --- a/server/private/lib/alerts/events/siteEvents.ts +++ b/server/private/lib/alerts/events/siteEvents.ts @@ -13,7 +13,13 @@ import logger from "@server/logger"; import { processAlerts } from "../processAlerts"; -import { db, sites, statusHistory, targetHealthCheck, Transaction } from "@server/db"; +import { + db, + logsDb, + statusHistory, + targetHealthCheck, + Transaction +} from "@server/db"; import { invalidateStatusHistoryCache } from "@server/lib/statusHistory"; import { and, eq, inArray } from "drizzle-orm"; import { fireHealthCheckUnhealthyAlert } from "./healthCheckEvents"; @@ -41,7 +47,7 @@ export async function fireSiteOnlineAlert( trx: Transaction | typeof db = db ): Promise { try { - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "site", entityId: siteId, orgId: orgId, @@ -97,7 +103,7 @@ export async function fireSiteOfflineAlert( trx: Transaction | typeof db = db ): Promise { try { - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "site", entityId: siteId, orgId: orgId, diff --git a/server/routers/newt/registerNewt.ts b/server/routers/newt/registerNewt.ts index 440a62198..6a9ba7565 100644 --- a/server/routers/newt/registerNewt.ts +++ b/server/routers/newt/registerNewt.ts @@ -84,7 +84,7 @@ export async function registerNewt( maxBatchSize: siteProvisioningKeys.maxBatchSize, numUsed: siteProvisioningKeys.numUsed, validUntil: siteProvisioningKeys.validUntil, - approveNewSites: siteProvisioningKeys.approveNewSites, + approveNewSites: siteProvisioningKeys.approveNewSites }) .from(siteProvisioningKeys) .innerJoin( @@ -125,7 +125,10 @@ export async function registerNewt( ); } - if (keyRecord.maxBatchSize && keyRecord.numUsed >= keyRecord.maxBatchSize) { + if ( + keyRecord.maxBatchSize && + keyRecord.numUsed >= keyRecord.maxBatchSize + ) { return next( createHttpError( HttpCode.UNAUTHORIZED, @@ -134,7 +137,10 @@ export async function registerNewt( ); } - if (keyRecord.validUntil && new Date(keyRecord.validUntil) < new Date()) { + if ( + keyRecord.validUntil && + new Date(keyRecord.validUntil) < new Date() + ) { return next( createHttpError( HttpCode.UNAUTHORIZED, @@ -154,7 +160,10 @@ export async function registerNewt( } if (!org.subnet) { return next( - createHttpError(HttpCode.INTERNAL_SERVER_ERROR, "Organization subnet not found") + createHttpError( + HttpCode.INTERNAL_SERVER_ERROR, + "Organization subnet not found" + ) ); } @@ -195,7 +204,6 @@ export async function registerNewt( let newSiteId: number | undefined; await db.transaction(async (trx) => { - const newClientAddress = await getNextAvailableClientSubnet(orgId); if (!newClientAddress) { return next( @@ -219,11 +227,11 @@ export async function registerNewt( address: clientAddress, type: "newt", dockerSocketEnabled: true, - status: keyRecord.approveNewSites ? "approved" : "pending", + status: keyRecord.approveNewSites ? "approved" : "pending" }) .returning(); - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "site", entityId: newSite.siteId, orgId: orgId, diff --git a/server/routers/site/createSite.ts b/server/routers/site/createSite.ts index 0ac0de3d7..251ddc3e4 100644 --- a/server/routers/site/createSite.ts +++ b/server/routers/site/createSite.ts @@ -351,7 +351,7 @@ export async function createSite( }) .returning(); - await trx.insert(statusHistory).values({ + await logsDb.insert(statusHistory).values({ entityType: "site", entityId: newSite.siteId, orgId: orgId, From de2a22aad8d86f042f3ec6869660628e11e6cbb2 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 16:52:35 -0700 Subject: [PATCH 085/131] Add missing imports --- server/routers/newt/registerNewt.ts | 2 +- server/routers/site/createSite.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/routers/newt/registerNewt.ts b/server/routers/newt/registerNewt.ts index 6a9ba7565..b79118b58 100644 --- a/server/routers/newt/registerNewt.ts +++ b/server/routers/newt/registerNewt.ts @@ -1,6 +1,6 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { db, statusHistory } from "@server/db"; +import { db, logsDb, statusHistory } from "@server/db"; import { siteProvisioningKeys, siteProvisioningKeyOrg, diff --git a/server/routers/site/createSite.ts b/server/routers/site/createSite.ts index 251ddc3e4..29eb4935d 100644 --- a/server/routers/site/createSite.ts +++ b/server/routers/site/createSite.ts @@ -1,6 +1,6 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { clients, db, exitNodes, statusHistory } from "@server/db"; +import { clients, db, exitNodes, logsDb, statusHistory } from "@server/db"; import { roles, userSites, sites, roleSites, Site, orgs } from "@server/db"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; From 4cf6ca1d550cd570ee7580175f1b6353fd895e57 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 20:27:27 -0700 Subject: [PATCH 086/131] Force tcp and udp ports when http mode --- server/lib/blueprints/clientResources.ts | 28 +++++++++++++++---- .../siteResource/createSiteResource.ts | 15 +++++++--- .../siteResource/updateSiteResource.ts | 9 ++++-- 3 files changed, 39 insertions(+), 13 deletions(-) diff --git a/server/lib/blueprints/clientResources.ts b/server/lib/blueprints/clientResources.ts index df1fd0cfb..c19ea3245 100644 --- a/server/lib/blueprints/clientResources.ts +++ b/server/lib/blueprints/clientResources.ts @@ -215,9 +215,17 @@ export async function updateClientResources( enabled: true, // hardcoded for now // enabled: resourceData.enabled ?? true, alias: resourceData.alias || null, - disableIcmp: resourceData["disable-icmp"], - tcpPortRangeString: resourceData["tcp-ports"], - udpPortRangeString: resourceData["udp-ports"], + disableIcmp: + resourceData["disable-icmp"] || + (resourceData.mode == "http" ? true : false), // default to true for http resources, otherwise false + tcpPortRangeString: + resourceData.mode == "http" + ? "443,80" + : resourceData["tcp-ports"], + udpPortRangeString: + resourceData.mode == "http" + ? "" + : resourceData["udp-ports"], fullDomain: resourceData["full-domain"] || null, subdomain: domainInfo ? domainInfo.subdomain : null, domainId: domainInfo ? domainInfo.domainId : null @@ -397,9 +405,17 @@ export async function updateClientResources( // enabled: resourceData.enabled ?? true, alias: resourceData.alias || null, aliasAddress: aliasAddress, - disableIcmp: resourceData["disable-icmp"], - tcpPortRangeString: resourceData["tcp-ports"], - udpPortRangeString: resourceData["udp-ports"], + disableIcmp: + resourceData["disable-icmp"] || + (resourceData.mode == "http" ? true : false), // default to true for http resources, otherwise false + tcpPortRangeString: + resourceData.mode == "http" + ? "443,80" + : resourceData["tcp-ports"], + udpPortRangeString: + resourceData.mode == "http" + ? "" + : resourceData["udp-ports"], fullDomain: resourceData["full-domain"] || null, subdomain: domainInfo ? domainInfo.subdomain : null, domainId: domainInfo ? domainInfo.domainId : null diff --git a/server/routers/siteResource/createSiteResource.ts b/server/routers/siteResource/createSiteResource.ts index 242bbf860..cec1c8b35 100644 --- a/server/routers/siteResource/createSiteResource.ts +++ b/server/routers/siteResource/createSiteResource.ts @@ -389,9 +389,10 @@ export async function createSiteResource( enabled, alias: alias ? alias.trim() : null, aliasAddress, - tcpPortRangeString, - udpPortRangeString, - disableIcmp, + tcpPortRangeString: + mode == "http" ? "443,80" : tcpPortRangeString, + udpPortRangeString: mode == "http" ? "" : udpPortRangeString, + disableIcmp: disableIcmp || (mode == "http" ? true : false), // default to true for http resources, otherwise false domainId, subdomain: finalSubdomain, fullDomain @@ -496,7 +497,13 @@ export async function createSiteResource( `Created site resource ${newSiteResource.siteResourceId} for org ${orgId}` ); - if (ssl && mode === "http" && domainId && fullDomain && build != "oss") { + if ( + ssl && + mode === "http" && + domainId && + fullDomain && + build != "oss" + ) { await createCertificate(domainId, fullDomain, db); } diff --git a/server/routers/siteResource/updateSiteResource.ts b/server/routers/siteResource/updateSiteResource.ts index fd42cc465..ddcb1d44f 100644 --- a/server/routers/siteResource/updateSiteResource.ts +++ b/server/routers/siteResource/updateSiteResource.ts @@ -440,9 +440,12 @@ export async function updateSiteResource( destinationPort, enabled, alias: alias ? alias.trim() : null, - tcpPortRangeString, - udpPortRangeString, - disableIcmp, + tcpPortRangeString: + mode == "http" ? "443,80" : tcpPortRangeString, + udpPortRangeString: + mode == "http" ? "" : udpPortRangeString, + disableIcmp: + disableIcmp || (mode == "http" ? true : false), // default to true for http resources, otherwise false domainId, subdomain: finalSubdomain, fullDomain, From 7e374baee92f875b4c9aeb0354a10b1d5fe45702 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 20:45:20 -0700 Subject: [PATCH 087/131] Update if the ssl toggle changes --- server/routers/siteResource/updateSiteResource.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/routers/siteResource/updateSiteResource.ts b/server/routers/siteResource/updateSiteResource.ts index ddcb1d44f..d2bb44a45 100644 --- a/server/routers/siteResource/updateSiteResource.ts +++ b/server/routers/siteResource/updateSiteResource.ts @@ -737,6 +737,9 @@ export async function handleMessagingForUpdatedSiteResource( const fullDomainChanged = existingSiteResource && existingSiteResource.fullDomain !== updatedSiteResource.fullDomain; + const sslChanged = + existingSiteResource && + existingSiteResource.ssl !== updatedSiteResource.ssl; const portRangesChanged = existingSiteResource && (existingSiteResource.tcpPortRangeString !== @@ -752,6 +755,7 @@ export async function handleMessagingForUpdatedSiteResource( destinationChanged || aliasChanged || fullDomainChanged || + sslChanged || portRangesChanged || destinationPortChanged ) { @@ -768,9 +772,10 @@ export async function handleMessagingForUpdatedSiteResource( ); } - // Only update targets on newt if destination changed + // Only update targets on newt if these items change if ( destinationChanged || + sslChanged || // we need to push a new cert if the ssl changed portRangesChanged || fullDomainChanged || // if the domain changes we need to update the certs and stuff destinationPortChanged From 2203ebf723d3114cc0453ed90767a75202022700 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Tue, 28 Apr 2026 21:27:11 -0700 Subject: [PATCH 088/131] show user idp in devices --- server/routers/client/getClient.ts | 36 +++++++++++++++-- server/routers/client/listUserDevices.ts | 7 ++++ .../[orgId]/settings/clients/user/page.tsx | 3 ++ src/components/ClientInfoCard.tsx | 20 +++++++++- src/components/UserDevicesTable.tsx | 39 +++++++++++++------ 5 files changed, 90 insertions(+), 15 deletions(-) diff --git a/server/routers/client/getClient.ts b/server/routers/client/getClient.ts index a05fdef42..c97612b07 100644 --- a/server/routers/client/getClient.ts +++ b/server/routers/client/getClient.ts @@ -1,8 +1,8 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { db, olms, users } from "@server/db"; +import { db, idp, idpOidcConfig, olms, users } from "@server/db"; import { clients, currentFingerprint } from "@server/db"; -import { eq, and } from "drizzle-orm"; +import { and, eq } from "drizzle-orm"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; @@ -236,6 +236,9 @@ export type GetClientResponse = NonNullable< lastSeen: number | null; } | null; posture: PostureData | null; + userType: string | null; + idpName: string | null; + idpVariant: string | null; }; registry.registerPath({ @@ -337,6 +340,30 @@ export async function getClient( : maskPostureDataWithPlaceholder(rawPosture) : null; + let userType: string | null = null; + let idpName: string | null = null; + let idpVariant: string | null = null; + + if (client.clients.userId) { + const [idpRow] = await db + .select({ + userType: users.type, + idpName: idp.name, + idpVariant: idpOidcConfig.variant + }) + .from(users) + .leftJoin(idp, eq(users.idpId, idp.idpId)) + .leftJoin(idpOidcConfig, eq(idpOidcConfig.idpId, idp.idpId)) + .where(eq(users.userId, client.clients.userId)) + .limit(1); + + if (idpRow) { + userType = idpRow.userType; + idpName = idpRow.idpName; + idpVariant = idpRow.idpVariant; + } + } + const data: GetClientResponse = { ...client.clients, name: clientName, @@ -347,7 +374,10 @@ export async function getClient( userName: client.user?.name ?? null, userUsername: client.user?.username ?? null, fingerprint: fingerprintData, - posture: postureData + posture: postureData, + userType, + idpName, + idpVariant }; return response(res, { diff --git a/server/routers/client/listUserDevices.ts b/server/routers/client/listUserDevices.ts index d793faf09..567eb0d6b 100644 --- a/server/routers/client/listUserDevices.ts +++ b/server/routers/client/listUserDevices.ts @@ -3,6 +3,8 @@ import { clients, currentFingerprint, db, + idp, + idpOidcConfig, olms, orgs, roleClients, @@ -165,6 +167,9 @@ function queryUserDevicesBase() { userId: clients.userId, username: users.username, userEmail: users.email, + userType: users.type, + idpName: idp.name, + idpVariant: idpOidcConfig.variant, niceId: clients.niceId, agent: olms.agent, approvalState: clients.approvalState, @@ -184,6 +189,8 @@ function queryUserDevicesBase() { .leftJoin(orgs, eq(clients.orgId, orgs.orgId)) .leftJoin(olms, eq(clients.clientId, olms.clientId)) .leftJoin(users, eq(clients.userId, users.userId)) + .leftJoin(idp, eq(users.idpId, idp.idpId)) + .leftJoin(idpOidcConfig, eq(idpOidcConfig.idpId, idp.idpId)) .leftJoin(currentFingerprint, eq(olms.olmId, currentFingerprint.olmId)); } diff --git a/src/app/[orgId]/settings/clients/user/page.tsx b/src/app/[orgId]/settings/clients/user/page.tsx index 23fba583a..880019177 100644 --- a/src/app/[orgId]/settings/clients/user/page.tsx +++ b/src/app/[orgId]/settings/clients/user/page.tsx @@ -96,6 +96,9 @@ export default async function ClientsPage(props: ClientsPageProps) { userId: client.userId, username: client.username, userEmail: client.userEmail, + userType: client.userType ?? null, + idpName: client.idpName ?? null, + idpVariant: client.idpVariant ?? null, niceId: client.niceId, agent: client.agent, archived: Boolean(client.archived), diff --git a/src/components/ClientInfoCard.tsx b/src/components/ClientInfoCard.tsx index 7f55a46cd..4815c85fb 100644 --- a/src/components/ClientInfoCard.tsx +++ b/src/components/ClientInfoCard.tsx @@ -8,6 +8,7 @@ import { InfoSections, InfoSectionTitle } from "@app/components/InfoSection"; +import IdpTypeBadge from "@app/components/IdpTypeBadge"; import { getUserDisplayName } from "@app/lib/getUserDisplayName"; import { useTranslations } from "next-intl"; @@ -36,7 +37,24 @@ export default function SiteInfoCard({}: ClientInfoCardProps) { {userDisplayName ? t("user") : t("identifier")} - {userDisplayName || client.niceId} +
+ {userDisplayName || client.niceId} + {userDisplayName && + (client.userType ?? "internal") !== + "internal" && ( + + )} +
diff --git a/src/components/UserDevicesTable.tsx b/src/components/UserDevicesTable.tsx index 88e495406..0a130cc16 100644 --- a/src/components/UserDevicesTable.tsx +++ b/src/components/UserDevicesTable.tsx @@ -35,6 +35,7 @@ import { useMemo, useState, useTransition } from "react"; import { useDebouncedCallback } from "use-debounce"; import ClientDownloadBanner from "./ClientDownloadBanner"; import { ColumnFilterButton } from "./ColumnFilterButton"; +import IdpTypeBadge from "./IdpTypeBadge"; import { Badge } from "./ui/badge"; import { ControlledDataTable } from "./ui/controlled-data-table"; @@ -52,6 +53,9 @@ export type ClientRow = { userId: string | null; username: string | null; userEmail: string | null; + userType: string | null; + idpName: string | null; + idpVariant: string | null; niceId: string; agent: string | null; approvalState: "approved" | "pending" | "denied" | null; @@ -370,17 +374,30 @@ export default function UserDevicesTable({ cell: ({ row }) => { const r = row.original; return r.userId ? ( - - - +
+ + + + {(r.userType ?? "internal") !== "internal" && ( + + )} +
) : ( "-" ); From a44100c2bdd2550ee34f190c31c894292f8ab3da Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 22:19:03 -0700 Subject: [PATCH 089/131] Handle deleting client and orphaning resources --- server/routers/site/deleteSite.ts | 30 +++++++----- .../siteResource/createSiteResource.ts | 10 +++- .../siteResource/listAllSiteResourcesByOrg.ts | 46 ++++++++++++++----- .../siteResource/updateSiteResource.ts | 10 +++- src/components/ClientResourcesTable.tsx | 9 ++-- 5 files changed, 77 insertions(+), 28 deletions(-) diff --git a/server/routers/site/deleteSite.ts b/server/routers/site/deleteSite.ts index 344f6b4e3..32735c639 100644 --- a/server/routers/site/deleteSite.ts +++ b/server/routers/site/deleteSite.ts @@ -2,7 +2,7 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; import { db, Site, siteNetworks, siteResources } from "@server/db"; import { newts, newtSessions, sites } from "@server/db"; -import { eq } from "drizzle-orm"; +import { eq, inArray } from "drizzle-orm"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; import createHttpError from "http-errors"; @@ -77,17 +77,25 @@ export async function deleteSite( .where(eq(siteNetworks.siteId, siteId)); // loop through them - for (const network of await networks) { - const [siteResource] = await trx - .select() - .from(siteResources) - .where(eq(siteResources.networkId, network.networkId)); - if (siteResource) { - await rebuildClientAssociationsFromSiteResource( - siteResource, - trx + const updatedSiteResources = await trx + .select() + .from(siteResources) + .where( + inArray( + siteResources.networkId, + networks.map((n) => n.networkId) + ) + ); + for (const siteResource of updatedSiteResources) { + rebuildClientAssociationsFromSiteResource( + siteResource, + trx + ).catch((error) => { + logger.error( + "Failed to rebuild client associations from site resource:", + error ); - } + }); } // get the newt on the site by querying the newt table for siteId diff --git a/server/routers/siteResource/createSiteResource.ts b/server/routers/siteResource/createSiteResource.ts index cec1c8b35..b3238796d 100644 --- a/server/routers/siteResource/createSiteResource.ts +++ b/server/routers/siteResource/createSiteResource.ts @@ -47,6 +47,7 @@ const createSiteResourceSchema = z ssl: z.boolean().optional(), // only used for http mode scheme: z.enum(["http", "https"]).optional(), siteIds: z.array(z.int()), + siteId: z.number().int().positive().optional(), // DEPRECATED: for backward compatibility, we will convert this to siteIds array if provided // proxyPort: z.int().positive().optional(), destinationPort: z.int().positive().optional(), destination: z.string().min(1), @@ -187,7 +188,8 @@ export async function createSiteResource( const { name, niceId, - siteIds, + siteIds: siteIdsInput, + siteId, mode, scheme, // proxyPort, @@ -208,6 +210,12 @@ export async function createSiteResource( subdomain } = parsedBody.data; + // Backward compatibility: merge deprecated siteId into siteIds array + const siteIds = [...siteIdsInput]; + if (siteId !== undefined && !siteIds.includes(siteId)) { + siteIds.push(siteId); + } + if (mode == "http") { const hasHttpFeature = await isLicensedOrSubscribed( orgId, diff --git a/server/routers/siteResource/listAllSiteResourcesByOrg.ts b/server/routers/siteResource/listAllSiteResourcesByOrg.ts index 0a6166755..c7099de40 100644 --- a/server/routers/siteResource/listAllSiteResourcesByOrg.ts +++ b/server/routers/siteResource/listAllSiteResourcesByOrg.ts @@ -98,9 +98,11 @@ export type ListAllSiteResourcesByOrgResponse = PaginatedResponse<{ */ function aggCol(column: any) { if (DB_TYPE === "sqlite") { + // json_group_array will include NULLs for left-joined missing rows; + // we filter them out in transformSiteResourceRow keeping arrays aligned. return sql`json_group_array(${column})`; } - return sql`array_agg(${column})`; + return sql`COALESCE(array_agg(${column}) FILTER (WHERE ${sites.siteId} IS NOT NULL), '{}')`; } /** @@ -112,16 +114,36 @@ function transformSiteResourceRow(row: any) { if (DB_TYPE !== "sqlite") { return row; } + const siteIdsRaw = JSON.parse(row.siteIds) as (number | null)[]; + const siteNamesRaw = JSON.parse(row.siteNames) as (string | null)[]; + const siteNiceIdsRaw = JSON.parse(row.siteNiceIds) as (string | null)[]; + const siteAddressesRaw = JSON.parse(row.siteAddresses) as (string | null)[]; + const siteOnlinesRaw = JSON.parse(row.siteOnlines) as (0 | 1 | null)[]; + + // When a site resource has no associated sites (left join produced no + // matches), the aggregated arrays will contain a single NULL entry. Strip + // those out, keeping the parallel arrays aligned by siteId presence. + const siteIds: number[] = []; + const siteNames: string[] = []; + const siteNiceIds: string[] = []; + const siteAddresses: (string | null)[] = []; + const siteOnlines: boolean[] = []; + for (let i = 0; i < siteIdsRaw.length; i++) { + if (siteIdsRaw[i] == null) continue; + siteIds.push(siteIdsRaw[i] as number); + siteNames.push((siteNamesRaw[i] ?? "") as string); + siteNiceIds.push((siteNiceIdsRaw[i] ?? "") as string); + siteAddresses.push(siteAddressesRaw[i] ?? null); + siteOnlines.push(siteOnlinesRaw[i] === 1); + } + return { ...row, - siteNames: JSON.parse(row.siteNames) as string[], - siteNiceIds: JSON.parse(row.siteNiceIds) as string[], - siteIds: JSON.parse(row.siteIds) as number[], - siteAddresses: JSON.parse(row.siteAddresses) as (string | null)[], - // SQLite stores booleans as 0/1 integers - siteOnlines: (JSON.parse(row.siteOnlines) as (0 | 1)[]).map( - (v) => v === 1 - ) as boolean[] + siteNames, + siteNiceIds, + siteIds, + siteAddresses, + siteOnlines }; } @@ -158,11 +180,11 @@ function querySiteResourcesBase() { siteOnlines: aggCol(sites.online) }) .from(siteResources) - .innerJoin( + .leftJoin( siteNetworks, eq(siteResources.networkId, siteNetworks.networkId) ) - .innerJoin(sites, eq(siteNetworks.siteId, sites.siteId)) + .leftJoin(sites, eq(siteNetworks.siteId, sites.siteId)) .groupBy(siteResources.siteResourceId); } @@ -215,6 +237,8 @@ export async function listAllSiteResourcesByOrg( const conditions = [and(eq(siteResources.orgId, orgId))]; if (siteId != null) { + // Keep inner joins here: filtering by a specific site implies the + // resource must have at least one matching site. const resourcesForSite = db .select({ id: siteResources.siteResourceId }) .from(siteResources) diff --git a/server/routers/siteResource/updateSiteResource.ts b/server/routers/siteResource/updateSiteResource.ts index d2bb44a45..462cb1c2b 100644 --- a/server/routers/siteResource/updateSiteResource.ts +++ b/server/routers/siteResource/updateSiteResource.ts @@ -44,6 +44,7 @@ const updateSiteResourceSchema = z .strictObject({ name: z.string().min(1).max(255).optional(), siteIds: z.array(z.int()), + siteId: z.int().positive().optional(), // niceId: z.string().min(1).max(255).regex(/^[a-zA-Z0-9-]+$/, "niceId can only contain letters, numbers, and dashes").optional(), niceId: z .string() @@ -196,7 +197,8 @@ export async function updateSiteResource( const { siteResourceId } = parsedParams.data; const { name, - siteIds, // because it can change + siteIds: siteIdsInput, // because it can change + siteId, niceId, mode, scheme, @@ -217,6 +219,12 @@ export async function updateSiteResource( subdomain } = parsedBody.data; + // Backward compatibility: merge deprecated siteId into siteIds array + const siteIds = [...siteIdsInput]; + if (siteId !== undefined && !siteIds.includes(siteId)) { + siteIds.push(siteId); + } + // Check if site resource exists const [existingSiteResource] = await db .select() diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index a772fb576..5c5906ad5 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -37,11 +37,8 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; import { Selectedsite, SitesSelector } from "@app/components/site-selector"; import { useEffect, useMemo, useState, useTransition } from "react"; - import CreateInternalResourceDialog from "@app/components/CreateInternalResourceDialog"; import EditInternalResourceDialog from "@app/components/EditInternalResourceDialog"; -import { orgQueries } from "@app/lib/queries"; -import { useQuery } from "@tanstack/react-query"; import type { PaginationState } from "@tanstack/react-table"; import { ControlledDataTable } from "./ui/controlled-data-table"; import { useNavigationContext } from "@app/hooks/useNavigationContext"; @@ -206,7 +203,11 @@ export default function ClientResourcesTable({ const { siteNames, siteNiceIds, orgId } = resourceRow; if (!siteNames || siteNames.length === 0) { - return -; + return ( + + {t("noSites", { defaultValue: "No sites" })} + + ); } if (siteNames.length === 1) { From 1d0a92c83e9ea04aef263e6b396724bc0bf640c2 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 22:22:06 -0700 Subject: [PATCH 090/131] Its in the transaction so we wait --- server/routers/site/deleteSite.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/server/routers/site/deleteSite.ts b/server/routers/site/deleteSite.ts index 32735c639..10ecbbf1e 100644 --- a/server/routers/site/deleteSite.ts +++ b/server/routers/site/deleteSite.ts @@ -87,15 +87,10 @@ export async function deleteSite( ) ); for (const siteResource of updatedSiteResources) { - rebuildClientAssociationsFromSiteResource( + await rebuildClientAssociationsFromSiteResource( siteResource, trx - ).catch((error) => { - logger.error( - "Failed to rebuild client associations from site resource:", - error - ); - }); + ); } // get the newt on the site by querying the newt table for siteId From 3bcbeb24f34e44af6d9fefda863b53780301a387 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 28 Apr 2026 22:27:35 -0700 Subject: [PATCH 091/131] Query the right column --- server/lib/blueprints/clientResources.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/lib/blueprints/clientResources.ts b/server/lib/blueprints/clientResources.ts index c19ea3245..1b2ec2ef7 100644 --- a/server/lib/blueprints/clientResources.ts +++ b/server/lib/blueprints/clientResources.ts @@ -125,12 +125,12 @@ export async function updateClientResources( const existingSiteIds = existingResource?.networkId ? await trx - .select({ siteId: sites.siteId }) + .select({ siteId: siteNetworks.siteId }) .from(siteNetworks) .where(eq(siteNetworks.networkId, existingResource.networkId)) : []; - let allSites: { siteId: number }[] = []; + const allSites: { siteId: number }[] = []; if (resourceData.site) { let siteSingle; const resourceSiteId = resourceData.site; From 8c645315f3081b815bacb0ebb1365a052682aaf1 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 10:59:36 -0700 Subject: [PATCH 092/131] Handle when siteIds is not provided --- server/routers/siteResource/createSiteResource.ts | 15 +++++++++++++-- server/routers/siteResource/updateSiteResource.ts | 15 +++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/server/routers/siteResource/createSiteResource.ts b/server/routers/siteResource/createSiteResource.ts index b3238796d..0da48d160 100644 --- a/server/routers/siteResource/createSiteResource.ts +++ b/server/routers/siteResource/createSiteResource.ts @@ -46,7 +46,7 @@ const createSiteResourceSchema = z mode: z.enum(["host", "cidr", "http"]), ssl: z.boolean().optional(), // only used for http mode scheme: z.enum(["http", "https"]).optional(), - siteIds: z.array(z.int()), + siteIds: z.array(z.int()).optional(), siteId: z.number().int().positive().optional(), // DEPRECATED: for backward compatibility, we will convert this to siteIds array if provided // proxyPort: z.int().positive().optional(), destinationPort: z.int().positive().optional(), @@ -133,6 +133,17 @@ const createSiteResourceSchema = z message: "HTTP mode requires scheme (http or https) and a valid destination port" } + ) + .refine( + (data) => { + return ( + (data.siteIds !== undefined && data.siteIds.length > 0) || + data.siteId !== undefined + ); + }, + { + message: "At least one of siteIds or siteId must be provided" + } ); export type CreateSiteResourceBody = z.infer; @@ -188,7 +199,7 @@ export async function createSiteResource( const { name, niceId, - siteIds: siteIdsInput, + siteIds: siteIdsInput = [], siteId, mode, scheme, diff --git a/server/routers/siteResource/updateSiteResource.ts b/server/routers/siteResource/updateSiteResource.ts index 462cb1c2b..d0efa0cf4 100644 --- a/server/routers/siteResource/updateSiteResource.ts +++ b/server/routers/siteResource/updateSiteResource.ts @@ -43,7 +43,7 @@ const updateSiteResourceParamsSchema = z.strictObject({ const updateSiteResourceSchema = z .strictObject({ name: z.string().min(1).max(255).optional(), - siteIds: z.array(z.int()), + siteIds: z.array(z.int()).optional(), siteId: z.int().positive().optional(), // niceId: z.string().min(1).max(255).regex(/^[a-zA-Z0-9-]+$/, "niceId can only contain letters, numbers, and dashes").optional(), niceId: z @@ -143,6 +143,17 @@ const updateSiteResourceSchema = z message: "HTTP mode requires scheme (http or https) and a valid destination port" } + ) + .refine( + (data) => { + return ( + (data.siteIds !== undefined && data.siteIds.length > 0) || + data.siteId !== undefined + ); + }, + { + message: "At least one of siteIds or siteId must be provided" + } ); export type UpdateSiteResourceBody = z.infer; @@ -197,7 +208,7 @@ export async function updateSiteResource( const { siteResourceId } = parsedParams.data; const { name, - siteIds: siteIdsInput, // because it can change + siteIds: siteIdsInput = [], // because it can change siteId, niceId, mode, From 5c31d35e28d7e9d1cbf79b0da55ca5baae5cbaa7 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 10:59:49 -0700 Subject: [PATCH 093/131] Handle sans in the acme.json --- server/private/lib/acmeCertSync.ts | 99 ++++++++++++++++++++++++------ 1 file changed, 81 insertions(+), 18 deletions(-) diff --git a/server/private/lib/acmeCertSync.ts b/server/private/lib/acmeCertSync.ts index a9e818986..bb96de3d6 100644 --- a/server/private/lib/acmeCertSync.ts +++ b/server/private/lib/acmeCertSync.ts @@ -250,6 +250,30 @@ function extractFirstCert(pemBundle: string): string | null { return match ? match[0] : null; } +/** + * Determine whether an ACME cert entry represents a wildcard cert by checking + * both the primary domain (`main`) and the SANs. Some ACME clients (notably + * Traefik) store the bare apex in `main` and only put the wildcard form in + * `sans` (e.g. main="access.example.com", sans=["*.access.example.com"]). + */ +function detectWildcard( + main: string, + sans: string[] | undefined +): { wildcard: boolean; wildcardSan: string | null } { + if (main.startsWith("*.")) { + return { wildcard: true, wildcardSan: null }; + } + if (Array.isArray(sans)) { + for (const san of sans) { + if (typeof san !== "string") continue; + if (san === `*.${main}` || san.startsWith("*.")) { + return { wildcard: true, wildcardSan: san }; + } + } + } + return { wildcard: false, wildcardSan: null }; +} + async function syncAcmeCerts( acmeJsonPath: string, resolver: string @@ -279,14 +303,15 @@ async function syncAcmeCerts( } for (const cert of resolverData.Certificates) { - const domain = cert.domain?.main; - const wildcard = domain.startsWith("*."); + const domain = cert?.domain?.main; - if (!domain) { + if (!domain || typeof domain !== "string") { logger.debug(`acmeCertSync: skipping cert with missing domain`); continue; } + const { wildcard } = detectWildcard(domain, cert.domain?.sans); + if (!cert.certificate || !cert.key) { logger.debug( `acmeCertSync: skipping cert for ${domain} - empty certificate or key field` @@ -294,10 +319,17 @@ async function syncAcmeCerts( continue; } - const certPem = Buffer.from(cert.certificate, "base64").toString( - "utf8" - ); - const keyPem = Buffer.from(cert.key, "base64").toString("utf8"); + let certPem: string; + let keyPem: string; + try { + certPem = Buffer.from(cert.certificate, "base64").toString("utf8"); + keyPem = Buffer.from(cert.key, "base64").toString("utf8"); + } catch (err) { + logger.debug( + `acmeCertSync: skipping cert for ${domain} - failed to base64-decode cert/key: ${err}` + ); + continue; + } if (!certPem.trim() || !keyPem.trim()) { logger.debug( @@ -306,6 +338,39 @@ async function syncAcmeCerts( continue; } + // Validate that the decoded data actually parses as a real X.509 cert + // before we touch the database. This prevents importing partially-written + // or corrupted entries from acme.json. + const firstCertPemForValidation = extractFirstCert(certPem); + if (!firstCertPemForValidation) { + logger.debug( + `acmeCertSync: skipping cert for ${domain} - no PEM certificate block found` + ); + continue; + } + + let validatedX509: crypto.X509Certificate; + try { + validatedX509 = new crypto.X509Certificate( + firstCertPemForValidation + ); + } catch (err) { + logger.debug( + `acmeCertSync: skipping cert for ${domain} - invalid X.509 certificate: ${err}` + ); + continue; + } + + // Sanity-check the private key parses too + try { + crypto.createPrivateKey(keyPem); + } catch (err) { + logger.debug( + `acmeCertSync: skipping cert for ${domain} - invalid private key: ${err}` + ); + continue; + } + // Check if cert already exists in DB const existing = await db .select() @@ -355,18 +420,16 @@ async function syncAcmeCerts( } } - // Parse cert expiry from the first cert in the PEM bundle + // Parse cert expiry from the validated X.509 certificate let expiresAt: number | null = null; - const firstCertPem = extractFirstCert(certPem); - if (firstCertPem) { - try { - const x509 = new crypto.X509Certificate(firstCertPem); - expiresAt = Math.floor(new Date(x509.validTo).getTime() / 1000); - } catch (err) { - logger.debug( - `acmeCertSync: could not parse cert expiry for ${domain}: ${err}` - ); - } + try { + expiresAt = Math.floor( + new Date(validatedX509.validTo).getTime() / 1000 + ); + } catch (err) { + logger.debug( + `acmeCertSync: could not parse cert expiry for ${domain}: ${err}` + ); } const encryptedCert = encrypt( From d45b727dcad094be6905b41f3ffbe3a38e9f13d6 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 11:06:14 -0700 Subject: [PATCH 094/131] Dont show cert status because not saved yet --- src/components/InternalResourceForm.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/InternalResourceForm.tsx b/src/components/InternalResourceForm.tsx index 76a614207..79017ca48 100644 --- a/src/components/InternalResourceForm.tsx +++ b/src/components/InternalResourceForm.tsx @@ -1120,6 +1120,8 @@ export function InternalResourceForm({ {variant === "edit" && resource?.domainId && httpConfigFullDomain && + httpConfigDomainId === resource.domainId && + httpConfigFullDomain === resource.fullDomain && form.watch("ssl") && (
From b39a2bcfb179bc26a5bf10545ddf95462aa983f8 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 11:25:43 -0700 Subject: [PATCH 095/131] Quiet logs --- server/private/lib/acmeCertSync.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/private/lib/acmeCertSync.ts b/server/private/lib/acmeCertSync.ts index bb96de3d6..570ccfd75 100644 --- a/server/private/lib/acmeCertSync.ts +++ b/server/private/lib/acmeCertSync.ts @@ -392,9 +392,9 @@ async function syncAcmeCerts( config.getRawConfig().server.secret! ); if (storedCertPem === certPem) { - logger.debug( - `acmeCertSync: cert for ${domain} is unchanged, skipping` - ); + // logger.debug( + // `acmeCertSync: cert for ${domain} is unchanged, skipping` + // ); continue; } // Cert has changed; capture old values so we can send a correct From b8ca0499af6bd6e795b949bf1f6f78b0a895e9bb Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 11:28:17 -0700 Subject: [PATCH 096/131] Dont show the cert box oss and dont check license --- server/private/routers/external.ts | 1 - src/components/ResourceInfoBox.tsx | 20 +++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/server/private/routers/external.ts b/server/private/routers/external.ts index 159ee2449..a2667daa1 100644 --- a/server/private/routers/external.ts +++ b/server/private/routers/external.ts @@ -165,7 +165,6 @@ authenticated.get( authenticated.get( "/org/:orgId/certificate/:domainId/:domain", - verifyValidLicense, verifyOrgAccess, verifyCertificateAccess, verifyUserHasAction(ActionsEnum.getCertificate), diff --git a/src/components/ResourceInfoBox.tsx b/src/components/ResourceInfoBox.tsx index ca5ded4c5..de600a237 100644 --- a/src/components/ResourceInfoBox.tsx +++ b/src/components/ResourceInfoBox.tsx @@ -1,7 +1,15 @@ "use client"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; -import { ShieldCheck, ShieldOff, Eye, EyeOff, CheckCircle2, XCircle, Clock } from "lucide-react"; +import { + ShieldCheck, + ShieldOff, + Eye, + EyeOff, + CheckCircle2, + XCircle, + Clock +} from "lucide-react"; import { useResourceContext } from "@app/hooks/useResourceContext"; import CopyToClipboard from "@app/components/CopyToClipboard"; import { @@ -13,7 +21,7 @@ import { import { useTranslations } from "next-intl"; import CertificateStatus from "@app/components/CertificateStatus"; import { toUnicode } from "punycode"; -import { useEnvContext } from "@app/hooks/useEnvContext"; +import { build } from "@server/build"; type ResourceInfoBoxType = {}; @@ -28,7 +36,7 @@ export default function ResourceInfoBox({}: ResourceInfoBoxType) { {/* 4 cols because of the certs */} - + {t("identifier")} @@ -137,7 +145,8 @@ export default function ResourceInfoBox({}: ResourceInfoBoxType) { {/* Certificate Status Column */} {resource.http && resource.domainId && - resource.fullDomain && ( + resource.fullDomain && + build != "oss" && ( {t("certificateStatus", { @@ -177,7 +186,8 @@ export default function ResourceInfoBox({}: ResourceInfoBoxType) { {t("resourcesTableUnhealthy")}
)} - {(!resource.health || resource.health === "unknown") && ( + {(!resource.health || + resource.health === "unknown") && (
{t("resourcesTableUnknown")} From 1eac7741a50fc0d8b8614f71c8be0ad70a14d8be Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 11:34:10 -0700 Subject: [PATCH 097/131] Show the certs elsewhere when required --- src/components/AuthPageSettings.tsx | 9 +- src/components/CertificateStatus.tsx | 11 +- src/components/InternalResourceForm.tsx | 147 +++++++++++++++--------- 3 files changed, 102 insertions(+), 65 deletions(-) diff --git a/src/components/AuthPageSettings.tsx b/src/components/AuthPageSettings.tsx index 1e825fa1e..edd1e3a19 100644 --- a/src/components/AuthPageSettings.tsx +++ b/src/components/AuthPageSettings.tsx @@ -399,11 +399,10 @@ function AuthPageSettings({
)} - {env.flags.usePangolinDns && - (build === "enterprise" || - !isPaidUser( - tierMatrix.loginPageDomain - )) && + {build !== "oss" && (build === "enterprise" || + !isPaidUser( + tierMatrix.loginPageDomain + )) && loginPage?.domainId && loginPage?.fullDomain && !hasUnsavedChanges && ( diff --git a/src/components/CertificateStatus.tsx b/src/components/CertificateStatus.tsx index 9b08aedfe..660fad62b 100644 --- a/src/components/CertificateStatus.tsx +++ b/src/components/CertificateStatus.tsx @@ -138,7 +138,8 @@ export default function CertificateStatus({ })} > - {cert.status.charAt(0).toUpperCase() + cert.status.slice(1)} + {cert.status.charAt(0).toUpperCase() + + cert.status.slice(1)} @@ -147,8 +148,12 @@ export default function CertificateStatus({ ) : ( - {cert.status.charAt(0).toUpperCase() + cert.status.slice(1)} - {shouldShowRefreshButton(cert.status, cert.updatedAt) && ( + {cert.status.charAt(0).toUpperCase() + + cert.status.slice(1)} + {shouldShowRefreshButton( + cert.status, + cert.updatedAt + ) && (
{isHttpMode && ( - + )} {isHttpMode ? ( @@ -1044,55 +1062,61 @@ export function InternalResourceForm({ {t(httpConfigurationDescriptionKey)}
-
- { - if (res === null) { + > + { + if (res === null) { + form.setValue( + "httpConfigSubdomain", + null + ); + form.setValue( + "httpConfigDomainId", + null + ); + form.setValue( + "httpConfigFullDomain", + null + ); + return; + } form.setValue( "httpConfigSubdomain", - null + res.subdomain ?? null ); form.setValue( "httpConfigDomainId", - null + res.domainId ); form.setValue( "httpConfigFullDomain", - null + res.fullDomain ); - return; - } - form.setValue( - "httpConfigSubdomain", - res.subdomain ?? null - ); - form.setValue( - "httpConfigDomainId", - res.domainId - ); - form.setValue( - "httpConfigFullDomain", - res.fullDomain - ); - }} - /> + }} + />
@@ -1120,8 +1148,11 @@ export function InternalResourceForm({ {variant === "edit" && resource?.domainId && httpConfigFullDomain && - httpConfigDomainId === resource.domainId && - httpConfigFullDomain === resource.fullDomain && + httpConfigDomainId === + resource.domainId && + httpConfigFullDomain === + resource.fullDomain && + build != "oss" && form.watch("ssl") && (
@@ -1130,7 +1161,9 @@ export function InternalResourceForm({ Date: Wed, 29 Apr 2026 11:42:18 -0700 Subject: [PATCH 098/131] Handle possible not null for tcp, udp, and icmp Fixes #2929 --- server/setup/scriptsSqlite/1.18.0.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/setup/scriptsSqlite/1.18.0.ts b/server/setup/scriptsSqlite/1.18.0.ts index 5f1718e7a..632d2e72b 100644 --- a/server/setup/scriptsSqlite/1.18.0.ts +++ b/server/setup/scriptsSqlite/1.18.0.ts @@ -255,7 +255,7 @@ export default async function migration() { ).run(); db.prepare( ` - INSERT INTO '__new_siteResources'("siteResourceId", "orgId", "networkId", "defaultNetworkId", "niceId", "name", "ssl", "mode", "scheme", "proxyPort", "destinationPort", "destination", "enabled", "alias", "aliasAddress", "tcpPortRangeString", "udpPortRangeString", "disableIcmp", "authDaemonPort", "authDaemonMode", "domainId", "subdomain", "fullDomain") SELECT "siteResourceId", "orgId", NULL, NULL, "niceId", "name", 0, "mode", NULL, "proxyPort", "destinationPort", "destination", "enabled", "alias", "aliasAddress", "tcpPortRangeString", "udpPortRangeString", "disableIcmp", "authDaemonPort", "authDaemonMode", NULL, NULL, NULL FROM 'siteResources'; + INSERT INTO '__new_siteResources'("siteResourceId", "orgId", "networkId", "defaultNetworkId", "niceId", "name", "ssl", "mode", "scheme", "proxyPort", "destinationPort", "destination", "enabled", "alias", "aliasAddress", "tcpPortRangeString", "udpPortRangeString", "disableIcmp", "authDaemonPort", "authDaemonMode", "domainId", "subdomain", "fullDomain") SELECT "siteResourceId", "orgId", NULL, NULL, "niceId", "name", 0, "mode", NULL, "proxyPort", "destinationPort", "destination", "enabled", "alias", "aliasAddress", COALESCE("tcpPortRangeString", '*'), COALESCE("udpPortRangeString", '*'), COALESCE("disableIcmp", 0), "authDaemonPort", "authDaemonMode", NULL, NULL, NULL FROM 'siteResources'; ` ).run(); db.prepare( From 0f6c66dc67cf784613aefd6b72533bc5e7d98094 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 29 Apr 2026 11:57:30 -0700 Subject: [PATCH 099/131] use localfont and updated mona sans closes #2924 --- src/app/layout.tsx | 32 ++++++++++++++---- src/fonts/mona-sans/MonaSans-Bold.ttf | Bin 0 -> 145216 bytes src/fonts/mona-sans/MonaSans-Bold.woff2 | Bin 0 -> 59988 bytes ...MonaSans-Italic-VariableFont_wdth,wght.ttf | Bin 0 -> 359864 bytes src/fonts/mona-sans/MonaSans-Medium.ttf | Bin 0 -> 142100 bytes src/fonts/mona-sans/MonaSans-Medium.woff2 | Bin 0 -> 59256 bytes src/fonts/mona-sans/MonaSans-Regular.ttf | Bin 0 -> 142100 bytes src/fonts/mona-sans/MonaSans-Regular.woff2 | Bin 0 -> 59400 bytes src/fonts/mona-sans/MonaSans-SemiBold.ttf | Bin 0 -> 144000 bytes src/fonts/mona-sans/MonaSans-SemiBold.woff2 | Bin 0 -> 60300 bytes .../MonaSans-VariableFont_wdth,wght.ttf | Bin 0 -> 348692 bytes .../MonaSansVF[wdth,wght,opsz,ital].woff2 | Bin 0 -> 529632 bytes 12 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 src/fonts/mona-sans/MonaSans-Bold.ttf create mode 100644 src/fonts/mona-sans/MonaSans-Bold.woff2 create mode 100644 src/fonts/mona-sans/MonaSans-Italic-VariableFont_wdth,wght.ttf create mode 100644 src/fonts/mona-sans/MonaSans-Medium.ttf create mode 100644 src/fonts/mona-sans/MonaSans-Medium.woff2 create mode 100644 src/fonts/mona-sans/MonaSans-Regular.ttf create mode 100644 src/fonts/mona-sans/MonaSans-Regular.woff2 create mode 100644 src/fonts/mona-sans/MonaSans-SemiBold.ttf create mode 100644 src/fonts/mona-sans/MonaSans-SemiBold.woff2 create mode 100644 src/fonts/mona-sans/MonaSans-VariableFont_wdth,wght.ttf create mode 100644 src/fonts/mona-sans/MonaSansVF[wdth,wght,opsz,ital].woff2 diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 9cf66dd28..d04cc0b6e 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -23,7 +23,7 @@ import { TanstackQueryProvider } from "@app/components/TanstackQueryProvider"; import { TailwindIndicator } from "@app/components/TailwindIndicator"; import { ViewportHeightFix } from "@app/components/ViewportHeightFix"; import StoreInternalRedirect from "@app/components/StoreInternalRedirect"; -import { Inter, Mona_Sans } from "next/font/google"; +import localFont from "next/font/local"; export const metadata: Metadata = { title: `Dashboard - ${process.env.BRANDING_APP_NAME || "Pangolin"}`, @@ -32,12 +32,30 @@ export const metadata: Metadata = { export const dynamic = "force-dynamic"; -const inter = Inter({ - subsets: ["latin"] -}); - -const monaSans = Mona_Sans({ - subsets: ["latin"] +const monaSans = localFont({ + src: [ + { + path: "../fonts/mona-sans/MonaSans-Regular.woff2", + weight: "400", + style: "normal" + }, + { + path: "../fonts/mona-sans/MonaSans-Medium.woff2", + weight: "500", + style: "normal" + }, + { + path: "../fonts/mona-sans/MonaSans-SemiBold.woff2", + weight: "600", + style: "normal" + }, + { + path: "../fonts/mona-sans/MonaSans-Bold.woff2", + weight: "700", + style: "normal" + } + ], + display: "swap" }); const fontClassName = monaSans.className; diff --git a/src/fonts/mona-sans/MonaSans-Bold.ttf b/src/fonts/mona-sans/MonaSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e0591eb20e849510c29bfe96cd3e8122978b33e5 GIT binary patch literal 145216 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 literal 0 HcmV?d00001 diff --git a/src/fonts/mona-sans/MonaSans-Bold.woff2 b/src/fonts/mona-sans/MonaSans-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1f86963d994c9d0f3ba7cd21bbf9f0824691830d GIT binary patch literal 59988 zcmV)2K+L~)Pew9NR8&s@0P0i#3;+NC0lshm0O|t(0RR9100000000000000000000 z0000DgN{NPgB%-!mTDZJCNI0Oa-i*^SfTbaF)0%kInJS)^q2cFtG zyxT;dOnPjJ8fDuTsN}W*R2i*5@lsW0^f&~F{ehGH|NsC0yOK!^XL8WXCl3I83#GK! zsjBMg25BiJdRSy>lC;tFc^IeYCFfpsViTuQx^nEB=G3syt#l`eD06{r+aX&PIm_C5 zLPlAET@vV$flX{Gq>d`vwRjx0yU(s}0ZB+gvbJVDHI3d6@d@4kTymLIM7i%po?mi) zofq{MCuC;G%<6iNbzZd}-p7Q@Y>bfbU_@wlcVAV+Co(f+X2@!MKDhJOwy1&MfEx`^ zV$dc(RA#il#0&oUetk2wReBH|&9<#mdql*p-609d>J!XFyIIqy(;gA8*|kHmwx@Bq zlG`sxep5-MxEYgp(kWRY2XptNGMv6H|MW1+LbO?12AO1xi1WEs@gI_qgk;t613vC5 zcPh=Ztm@H#Ml58_Iwjg&nkJ;1Z}A z;x(hj_rKJgQWc@5{C^psZFW>0RTm%!M+pJ~BB|K%&Rjd4i}G!B;UfCK7r)=Xi~h`g zZ2kM5t2j3n{`33&|9(tcVq5Hp-h-Hh<`G(LsSsnU=?ujZ z0k=1{7Jcv3B{MXqT`7BHmT%F%CQxKNpiu)%IY}u%+^*yQU-mwc~Sm zwg2~y|8l`25#NZY?JlQ~2Dp@M18j$kAOp*iEacH>BnNu_LT^Ar@ zB_MH>a83YRky~BTv*teUhcrI=DP;dXn2_T_!jL#Le@KbreJ*q zL0oWI)3Uv|{6hhU=-p*mfMbd977LD!O~nG0>sxG*SM&$+?7z8w?H*2h+Y{u&WzP}@ zEabG4Mom&ELgADnJ#f&%>*WOoq@#jv(<$YF$aC}{wphx2ZbUG`KA5w&n*zJ5r>AQD z58xj#0>GlNG$ONb>VdcbAbeG0APWc#oJ{>6R~)I@7YThZp+ItBoTa~kgDzA6=?yJ9 zlv}lyLZxcDL%49yoV^b)JCx`m94P_Z2UBiuEh69f|99VNdi{29+KI0-wWgDt=UY@7&5WFvwwl1Rx|1Q|sHC?Ej>L{_HuxL2PzfcoK+ z>)y`HUGYgELQoqm`oKT_9xl9i?z#8RC~O3ynqnr{l%@qGb7R{#a4iy1zvQQ;&bU7r z9r*~9tR3JY>ex<+X$!9Itp;`cKZ`;GQ5$QX}=m2(yue+J=Y z7GylqO8z*UlLsM-%)@v&@GDpegg`k`t#tF>w(qBE%a6yDS7xKDV zmW7GU85)J5sBIzVzlBgB>6rZgP1U}=?}0p?p&SOZ_n4IT>>>9jXzfCFQOT;J(*7uNfQH8O z7vx-xCCB%eoK9HdWY+u0IM#dBZ2W)wvxRO!N539Rpcz*z;b@_f152jSlmRHS#*tiO zT?DoqiSa!i>pa)^ATd7LXv6hM%y^Biy(0)f+sGnxKYp5@mWJyImy8B7{L$4bT6(YgkK+^z7$5;csUjeRP-P2bG?sMFt#Bj( zX(1WgH1JQU4$Tiif;_1N5y>$3HvB%{=#jm<_Q5_v2-mO#5eXtw5gCR-29a&p{?h)< zNtV6b*R=cQ7-Pg@j1fYJO*6xgz3}^g(>`b4`*+o`_rGe@sv0#aA|fJURKz39P4Wno zn2?ADJ$dOr5Ntt0#L2&p?!m?Jdj~7I`0s@4zq8QuNj*Q|U!UjWKP$}7w?yo}e?_J+ z7LuHG-~V9#=|}$y&ziulcL}x)AasZsvtUETQ-Dx0l4UATuD@YwHJfC%xfWSrold(P zbi#QzJ@8z&FP?ZA8PQLkHhoDsODSA#spV8$Wdo~iOamDj%+aN;H_=?T^EK3D)tXU> z8TpCZ4d9cwF0S97_V^X3dqm@#eanuazRb)SG?KXKkg* zEh0gh%%noPWK4GCqOiP%$rkmVHwH2UH3$D0n)!L2Q_Z&PrcUZS&*MVbaue|xemVHOh z3{6}czBVzxxx3KY#3Ui9KvmRq4G1Y{8Cf}HD^RwjGdlb+049r#&X^Vr-yz8n4>DkM zSnv=e4K^YWH71+{h?Aqr7WR5QmLmb^$|u9T|7ypoT;E8BE*Pq&dXNY?K5b?yfud`wNi#GxeAop zqr!FfH0d;8TtGSt>stRzN)%YbG?lfC|t5*EfpO(SZ}_fdcE;g9&bgkOTl2B*stz3IYmTOtV0F$1Zw|G0T3Al12tuS(2hVWtR?Aj3M_6lu_BcQk;Ju?Xsn*m4b(I@k#5L5&Ukce23;bjs8b~2!H`R-!+(C`Uzd?`GLHw6Tt?X z>l?=PoaBe6wlJ}g<{F|!4HjH5Vq$%a)jQ_qkcOy8VrWoVk(n6K(ldW)+%R{oo2MH` z`Fqz`RmIv2G1gY8K=CQQJqmf9F+IQl~OQXgIX3SZJoT5O$oIW`K z-%31MAd~1C^@Dj@@>6&UnZZ->$3F#+f1$s4S^WM|2S3;T>dS9k@}2)pQB9hY-*);V z(8Ij=oj}{~G4VaR8Akxq48BJKbE-%nNeaofQgqemSZ9zbS+r~yt2-lWci2hvFCn>7 z>0%aCO&_&y|LX6)|WbB9F;KzgrGg>)&W zhlMS0lH9b@=RA41^cu9`8y&<2$;Ermz{{rgBJ! zA3^+2gRp5+)jr-|2xONBA;LYpu3iYU@Co|s>;1gL+T0FQ+p#f6w9h>R;;XFflh(+2350tGo>8nAK>T4*xSus+1rIL|0QBr>|7bti2kuEUB?_W$fR zZD^eD>2tv!fuBwV&=mG*BSFHp-q%akFMy@$!`B-TYsD#J6jR^?Nzqj^Ax3m503jHW zqu9Qfk>fM%Q}hURrsZ25*XU}#TAuI@o-zE7n0o^lb)#<#x;BBFxQP9AOx>!FH@MVlm?`yinp%0a2}f4W<3;6?_D} zp6|MF^3u0$=yL&Bm41mO_*t8q@7#^UXpr;z&nnQx(GPd)u=D$C(;(LW+nq_m?GP>>Gzbm0^nfntraLqFJ2e=HM z5(TgkrvnJHT&P&)%DyaFe|VLxMo=6)dr0NKQ1j7`>HBy; zHh+F@p08UoN-IyiN=L{RC)kCfF`uMgT2>4N!DUD$%Mi_`n5DyF%WQSjB{$sj1rZ@S z#2{Jf^jUM1T%?!=HM(=@8XeM}Ce?o}yW470xeEH_{($4QbrefB&}wUmNKM4XJI zLB`~a+*8#l)wN%9^_C-l*~!x8E?&Myx~zGNln$&=Jvh=H)1~yq5hMctS?;uX|Cx(c zY}|9~;u{}q-Fx)x@Wm&t&iVGUR8Hyg{a75!$V5+^K4wZZ5J=7WrB16stMr<(uEVf7 zF{?I|jmuV_LFu#QFFl^#7~nG7QqPGz8!cT6etPY&0Z+QTJ>4q1_F{durJG&v1_o_) z&65|&%CejllOQt1Y`h_lRh$Nl|04(tT`=$vb1{1u;{fUG(h75GX!v z*4$A}108gu!Hk0#Fjb1Qk?;jFl&Gz_&h(@zHL6__^-HZi&HoloOR$JgH9e&0$hNiR z5K7eZ#p7*=HRa0a?wi3^pnl2SQcyFDP-H+n{8=_I5G0a zF~83d#^;IYkF}sXpi8&Ko6Yx!@+-==CmnQN9_X?lDH^Aj?>{^qZV*XgTS<2bgJG=r zXx{cJFcIk+>2*VulJv8kAqf$%Q8#S5s#Hjv0~FpKR*-+3LjaNfc3$D$dKf>*+2V5- zxiLadIHcfc&WmdxgsAXdm~BehwD(3(X;4_A6);frp@$)8c=87VlJT%wK<=0v4|rb@ z;4(ngvjFf&8{exvT2-lm?g06kH_ zY9pOtI>KB5o~PmaaS9O*aj}HsMn0l0A?c3gJ?D;I4zPgUG4X?_Tec5@kpNBys4Y=Z z;5`n0M9bZ+L(cwP3kDs;fJ7yz0FdcwO5@pT|HWzV+$8}0Fw$!hp9-4!+bHTfE%n~c z6P6nhZxrKxjUhRp#h^Sya*U9m1m!;s%IIc=`m`P&aU_|w|26R=!R-U#8rZxcWR&kc)xqNDDeDDE43;{tW z{25b&eZYqoB+Q1`3XinkbyELMQ?Es>W)A~EBE50`U+7-#)J0wdk%?0B z$(;J@USQT=s%dj9aFp{WMg5G}2CM#5(KrETTFq{AR4x&SmC)!9ye80*rV2}p0Sqx3 z+?RZvNhmkk{5B$uB?U!zZxxc^tf+(N(jU(ZuLD>KhE$e!opXcI!W!0bC(nVBjhO6G zGYt+)xR$$Op@F;Oq)!?I9Q+8{oZHx_Qp}SL#Ez@R;>~QZL&e=smPRFU)`G8gl8ox%^gx|#{Kg2XFF=QkE zDoCG_WqIBGeFR}*)I={c1xjz48)Xt6@ebXGgBD*o6_=Cx*PC$p{fb zAv!#tjizz)!s&tB;-Z83Ksm#p$UgaWnN8+lf{e6qI7yN~TjD6GybNS}Nas40(pE|0 zJfSe?M>w}^cY_-DI} z`;ftD$U0s{HEi%l8TX2p09#w1oV>TLgzOVw_8^$`odPna?xeM8S2%czZwb&0#7SBf z;9Elz$!Ht+5f{(+f#&41iZtbxV)k)WtW@M?^#9=2o&eXM1hgFx`&<;_0@!>3X&xIQ ze;bi*iqWK2@uy7EFKz5gWEJ?-@cT0FbUwB|yROTvTAqn0V!l#!!HaP@;RB}=QK#{@ z^v9f%RKdfS583SAEE*^+02C*vXxBost>+C0YnWrl~^5Z-su=yT~f z{Wm@(Oau>F%*0IQA%Q2l@~O3!&i55Sz?{qvfvQ^GL%Z0mqMGP8l@@2b2E-DSrWBJ@ z66UE~xqUnLX4P*wmb5B>hQLqj{+f}XcsmP;{gxhT0+7p;v1ro4NpAu7OEGL}wKQn- z0Y*x7x7*D>%js*Q+)*G%$+HJjz*4w zWVF$rET=JF8Xaxd2YwlO1Cch-Mn~}KU`&^{H(Do8?Cn#?8Ahq-W9ESHg{Kk_`R}n9 z!~$b{H2bx$6C}erYZivFq9ZxmtIAtvIi+;lM~9;yzqVDZpcp05V;aXzL_M-(HRM9% zhWhU^kYDF+%fHrxD8tt8Dthq{6gDWeR`mK(vvHu+XtcOVUAKD>=tKZ^N=H=S?Kkk- zK`~2mCVYM?PSG$_U-2DfRa@@|VE2F$>(sCHTbowyqW!h&s-|<}xhOwYRhh}A5-I;S zYS{&sozQ3iH1lUB%diZe;RSwp##f8}1LOoA{U4l~j-8spCIpaW1b$X{b`0adf7<=i zcgi7PU#tCUH3}9*m;4t?pMT%eO{%?%994tAZ-}(m z@)EYwo|rkUp*BZQ_)jKdSyj?p(U$Ef>eA}A=+f-L^BF~^pv&*pQZjzK5yx2im-wY= z>`{u}+Hp^H8OuP}_B0a^vZL89;6VplkjU-a&K6GOj*yMt&yw97hhUqC^WW_4eBhL( zInh{*ijpKvQ&fy*5Zev-%bP0^O>wKgx!2|)ntD9?3jw*w|S-EMUM zb5i;IGWS1we_!L6?T3IkDJhR-Tm5H>CoC>yp@Jdcgzh&KBA*w}hVsC>0FE+p5MEuqPU|KXFqyf>fIt@d@g<~MK7U!_CrS1haRo}Ao zH7*dfHeI+M+92t-(57SrwQJw&qqFbq{2X+4*>%$(m@Q!!VYQ2N>K?Kh2;M z^W8TmHX&!DmN}dI&4SWt7mqWv(?bGVkr%bn+uUtPMYk>!HjCF|1chJ1At-MC0}vct zk~m?No3BLoZ9^}V2g#g@-UJtu03HWcsA!WQ4OoBUE&=J^=jXlTvNrU7zpfHD8Qi!{ zu{M4*mm3aI#PUIlInzs-oQ>URpw8>!;=1>O3P-~jd^bRW4{0%9;*Ot`MA~$4xWS-F z59JB~kar&}FW)6(Nlcm~ih^L?FOwAcfR6K^9|WfT0j-Y1VGP=vRS^B`UQyz2j+5bZ z2`a_5Yl^=UTt)i6lf+@e<`ge%?-5lFnP`MNL+WrlE>G3 zIkUDXB_wJUK{IZbfp)d@+e*nn$~;Vv__%ImIVd)2ZvwpO;IM*=WO2E)weeJ!7s7S- zDF#Q@DvS-(Dn*@#K?*;eo%&Zc6)5euK#A|SWMw6k`5H!F(GlX6a+TmhzL>zBcj(l6 zocm#YVn2V2FW2GBu5F=U|81Nx)f;aY29>0KDd0?qlp~k0ks;#DVmkN=XJxJ@;|#v* zEJq2n@}-8&==7bvkIVL0;;!N_5@hLJ-mxzzp^p7U&BAk!!7~LQ`EV>Vkv~q(>~BAR z>h*M7OhlFdP|uGN-`@gr$#Ek^4HRmPkt2qDL^-*uMaS2vLnr?Pko2lXcHUZH!P@r$ ziVFsu|9R5YZ8RBe!~H1#y)i>!2KqL=mofY@pvz7S$|BPxZ~E%!;VZMDr;d6i+Fcp= zsMgUo2fpqOG}=Fd5r0Fcmn+)-r*vp^%@%;0WHipB8WV*0NE{q~R>sjXSkvAM4U&xP zlN+QQvTr019kBoyppWKm@KyFBY`slTJHTxS@(D+Af#Y9T^!i;&zOd}Wkc~18|J@uWsLeHWX@5 zMh7F;7@yKmq_}FjfX4oOFyagaph<)hzVw$01S4&%;~@&+>B67n8*jCcG$Jw3=IruT zKAq#U$ai&xG;t`;7dD;#V3O>Dh+oWHmtOLjVKu|SuP`LvCS({uM^|V#l|2lwjQhE> zfi(!YU`3H;Pm^ec16It&H1;mHekvzJ_cWf3pUa@tr5c450n&e_BYpozMGc`WgH!nj zcAP#55pl_wLDTLOZ?r0uWe_JwkAY+fe2Hn{6%?zEDblU5IVkPO)yA0TH}ofy!k26R zFLTf2VrzVL{^i?uZb71<7r2hz0C4YChCoMnwDrkMwEpt72&EfwncON=dN`}C1T`ju zQWQa=Y#WRbPRmhzppJs^y%ZZtV4@d!bh3~(908RqHr=TL(Z#6UZn5&CY_(GJjv>4Lo|yQPSwL zl0ZOpK#IOik!!eKrgEK@lKV+rar6(UptQiC*|G9RB_W#hK%ixWlpdGC z=F6mOAd$Q7^|xpH7jU@F)|nj6@PTo_gsx{m8oyIDmWv2a%882GijX%m7bV1YVJD4fr76!(rry z1HQ;F2mIg&@<-rkGA|x*9GU$d@Q?K45EyU*`5SN&`RC9FnSfI$FA;DWUG`1j47$n# zoJH4!bLd*b`G8pv8I24V(e*<#x?xxYF>ndpI9x_IeQ*WcDqKakImAY@AH<`(h6I=m z*U;U=^<+!JO?2-EiRb}C5_&KsqlX;YAq71GH0Y6sTj;Tn3b)bY;0}8HgS+S{a1TB8 zZTtoIVGg9ha!8MkAIL<{fd}Zh1AjvndclEgc!*vSc$Dny2RuQqeh=hCmmkOrPtm*K z8G6rw0`viRjz0L)!O?#oOoN#iguy!$>ZJk}z+zZ|taXg<=SUB9!91V=D3pR6nqUM} zgAiEIhY-vrpF#{nVG4v{b|3gbArwO}s4;uJftt`C>L46=FaYXdU|^sh=72X)i8<_n z0(4*`RKa>!g*h7L!7?aSX0D@=wlFdjyQ2`~vW7X`t=V@fGfvAK5WDWsgVwY0kX zDf_(NE`3GO6LzlaVeKCCR`0oc{YsB%MLB88c8#o)m|-aun{;MTXRO{!H}5!exU~J! z6I5ZP==B3O(JMV!hd{-Aye!xB0bha^l$Qgj8iuPRWW? zgcTJV5WobQ(GC&LzyktxNU#YADwcRg5j7O)4JXX;i<2x8sxrEwO0}q0b^$7>rBJtw znPE%zXJ(67$(ojU;w@kJvuoVvj0-V4ve?CYaHB7@;g3>uqL)(caKVqmwtD7^-yt<@|rnqruOuY(U?tzL~z5dZq+QqI%Sl5*4R6=xyybZ!u}JU{uCq zNaNdu_S4?jNy}Tqo8vuuGhVxQ)mwTCqvnA;$gaG}L_RBP%c(4iy@X4uvp%)ts&5P>OJAqW{L0S4+w0738rH+UfgNoWI!%kYj9g9m-cqfSd`O%Hh} zO%M%8q!Y!naXe)Ww{xf1NKc}gqgTwpz})J#vqs~X!2A}n8CSW;QQzZ#qK|A~T!ItU z_!{d2aipM%DIx|QF^F+oqZcb^;|Lk(iTaeH9$6GI%+4b&@fI5xXN3(8g)KWW6271~ zr7U?t^%cFOe$DApQ5|V&m{pq^#}c-%ly%JT0T2A)312$slnb5&DeOo=agTazhd-Ku zh8vF?Nu$kc^KW;w&+Vt%-<`X8H*Q_G*ljwet2*6Z;Q#nd{`2+h(T}4?M`zv~=a0QY zfXS7)E_W$ckb9dI3bi;dl{cQ}uG`Z%&GOIrlUWw53Us-u7zzi4o+^t*MKkU0;%o8e z)>txPB^@vQ4=ZucyfX!5zxChAl_Tq{S5UQH_GQtOTco{WdRH8*@_CM5SJnSk{Y}-& z@(&AO04i`p1!8c45GIjuhb^>W5}Rn!Mshlkg>p2dA_a^yeP*gStN2rt6{vEp@>BUz zUZ`%V6snM_r{YztdXM^FT~LDqz8lyLax6tAvalJ&h(BwbG%_25?b3a{ z$<&xqO^xP5>x#^uyydRny-C5_lcT1M5 z*)`$%`hyNz4{mk48{OAG@MrhjmXZ1DhfQk%3HO z{!C-=Ib;%`Pz>P_0VK{*DYhLt)a$yNI?c#P>vvU0UHwXQ>?zK_+#m4g^auR0ey@L` zf2O~{zuLdsf671X5BaD3i@na*{;w0iPDRTh4dH)(okXrcq)ac1X81WV^n4!Lo~z3K zCyznTlW1Qrh1v&61cUkdkQ6SNL@=4crIQHv;p?YVa>ubrZkcIVvtW%|Azk2q(>Ge7sWB{XGN=u}_t&b632xE81-B zke&Q`9$HpL?O2L9 ztW0GhUzb?MpA8)pZ4K5Nj*H}7*MzbVzjny=hcEgZKTccnwv>dqE9l6;S9OdmMoE~M3obeOb|Wu9tJ74FM9@H7H61>;$j5jn0jbg?CpmDe3vjPCkR zKkg5=6(cxIxttZ?>RZ&N87iMig;5dpG}%@VF3>PodbZS5wX+jbsY6#Y7y6N>&sqmw z&*;h_d@@~)v+*Q+TY;Q~{8eK&#%CEIUIWJV#@-b$6;%6|j}nKP5I`acf8yl}9Gaul zHa-UL)5MzVf&{>%bQrU_G(%VE$Ml~t`U6rDYAD0NXUnt zGl$n;W(h0~|5X522;Qq_fu65Tm;XIBD@w$3%i4~*qd^{0UIktKZ4#dN&W}qugbB!^ zbKAGH>zo`{$CH+wmB@#uewiO~OS|@gamOf5 zbzXw~F|=MO=CD|Dry5v_@DE@$ECcJmd!$VThgB&0$dg)SD?u@(VdnWQusBRJs9BZZ zY=&52WT=A@Zlbc|(;RXL_Wl^i@P15hBYbQCz0LrUHytAFFmnkGSA}Dre@B{%+nPqK zYVp7J{?@Qx#MTW%LXD~;J1ccAZHiJ@Z^y03O(T{*W^LI7SR$5;??1{_v#XvZixoAA zbi-_jZH32!Bs>=`^Te`4mq$j0wg;=`4@~D^ z%|c3z#Rp3Ny&w63Yl9B(j+Z2e|2jq><}hMXR3Ypw6Pkc_{S@VVWDlNr17>AyeBSyD zFuq5y0*3S$Ftfc)et`dO4>p?f5;cVfU+<-w2bqAUKOl}2Lkar)At}3)Nlv6V&72<4 z1r*iD8L#;ns`C+sl5*%KdA)hW+(w55KLpR-0{A81FA3e8AQ)u5q+ERvcKaB-oJ4%x z9Xww=An#Elok`^wh2qXF#z@3zTQhff@JG1(=I}rOg~7o;6B|0*;=Y_jnW=6(Z}_gK ze)luD!%JHO?l=wyB)EY}B``SjYq&J3^Ox#VnSF>)#jEGtv`OlXcO5zeq$PAU1qBDJzUyh=)G28$>j@MkIOU# z^F=lt=jj0W9t}JK33tE743R^VdA_jAz#?rt%P1-RJz2^ZnKTIb9r3rYSws%+(0@wa zs&FZhAj#ajnXk!<6gC~dQ6+crc+ACP&)&kr#{yB_#^Ks{n~Chn+Qdasj-T?vx{?4S zeqc`q1nfWmdXBdV&Gtc<@jnt61?q^O1(M27C=)FrJ6Amm-}sxviub}3KJ_KK6Y}14 zL?lSt4uss`ASdtGv1%!tPki_WgvHp<76Lc#i2{ zusH0jq)e(yv#2Z8`N)Ig(Qir#sgW}(RN85MmE6<)YRU%D921IlHwYF74(B6eW)tAx z;sp^hsv@O*YOt#+=kHf+g5^#)au(Tpqv&Lk41Wl7D17E-!!FBx)x-L zOp__xi=!4vi`5_wyqY=lNs9RY{*&N?it_8z%{q7`bgcI+$aNAdNu$2JJW>Mi5}Km) zvE-yA1s`Xcw1`b;2A}n1`R}cK7+=l=IgL+tLa^j(`AkUc!;e3FG?I$M-wT2MdiW{t z^IVxj{{DU>(f~R(EG@OotjM{O`vkg1k5$5+iG<@(f@URYDKcs3#M_JBqDW+<@|*YH zZ-PB%fA#ax1?~q(g-~gF6zBT5l$tn<&u|u*n|eMO>2?vh0E5!X#m0r}pOpk5iCRjP z*B=7x_E_TLi&c_jJ~wBlkkn$awO3)>ym59)N48dD{}kpVg{jEQAX*I$x**Kkqx)cCUvhQ! znUnVVMZ9>{u~S;T;t}R%}txh8#I_|QJw)B)4=H%J7zzL#MTM;)Mq$z z$l?7cKsQ>=>iK>vCw+Ehw= zga;O{o)7Fog)AWIdAE8R{Tv3(+XmW)isuRbL144&Rpy>~0d1fgmc0WXs0x^3aR z?UrzO;%iW>e{Ac^kA05SJRQY%;2<($Ef)8xPz!wu{e*i}B9Nub5{g-NvTO^l@Md=VDgmp}d=Z=^swjb!l@sMaVBvm9Bi3HH8~8Utng)Y2ToIuJ(mSG@Xj5oA(LRWx7e#0c zIzTtEOg`_ComkwOQx^4dY2#)Kw@topci6XHW(<9Ja`HjFKN;_ZE%pP}(QdFOn}F`4 zKE?KyR*Lnwc^Aa*^2^i+d?VHSfH_n>hN9k0qcb?z$zjlMO#(%~DA%4BMu0n!CN)i7 zPtvHDOd5;%=^Tu}0{4-DC|)z=#Ac{+q8oc^<~TMEju5IZ8`+7)R*_m{dp@%p_LTZa z+-D=Fd+>Jrd64Y7FxxaVGBnASPT0ZWQx@XK)#@y=g2p4W|Zz@owK%u_@Yu(UD**o zD~|yqQrKEYrT#wZL=#E!;#43TLF3_zqBu{pyssn4bIa0v?&diY<# zXEJMDcpbRjS%r(=!;|K_i({33roap3&;(`c3eL$hRSE^^1TWH8Xvti*xB9^@tU54Y zmLkQ@_)?@<)nkWwGJya-L*RLk2%wgornsk)lrHIWQ*-9d3YxQav0U9Ky{*`Pn9v!q z$KoTjLN}9Z;WX^_U&vko?+++&ZtTLVsX560Nb&&mntd&o>oQ~NFHZ&Z8!ZTotoZ+; zSkncRz-yF`h!ofr_}VO+>WeYP*?iGMKrKD{l}KLS(Bbkm(+$8iO@sDCOS_IDumJtcvvSNh^Ws&+D$uS2`<3hzjsNd( zs+_qKpp=q4hTBwjc;~GZJc3@ONrJP(1~bQ@tSnxp1L}?TkVI$8RQ4ImqDoZf&|!|z z|BECM1lmFm*rA+Pp)Spbwq+TRT8Vdj7fcF#iTG~`DNra%)YFpG^Y%b27559PRLx6| z#!-NymLl3-CLJ?{gTtggUh<5~NnMzSuMSR->;9+rbP0-~bBgG*dL)+TU&}(jGoLGq#!0X%`l-*kTY#ITus~qf?ANDFZKxGB)Ggcz$OaR)I6{(H& z{Br{jBXaj9pv%EYhe>Ka4Uw1>2_>Ua&nXuQfa^{1c{r8<1~YmdNn0V@lfdBA7gKRV zdz(~GqgINoYfy$OJlAPGt~UqyiFCtM;m`dW1~F^#9u%`(NbJxhGMr2@k>Up29pUX#ai}iumCt zOg=5PAKNoNulC+K?#ztn*)uJ{W46|;?%*V*P5yNJ)Qo7x_Ao%EVFuTy2HU3IZ`SeV z0Cye>)wxUC=VYoVteK)xtNHHnT_~uxb1`+?JmeyNV5f(KqLX!+kHcbS-sa=W@DNjd zqEp~YJg385-93{az^1WP8Oi#*LaYxcZKBgk(p-5$faHdXcs(y;4kdd1vDzSQf#0Eh zM^@4(2}**JpiAWsO_#1Iq@UdmDS5dNm20`gn2GwhZY^=?Hs_6j_fbBkDM^tx238qz z?uLX>xO83AX+n&J=!1ky-pId8`9$n zHw_!&5HN^a6X)Y0$R_I{9$x86Xx|+`y_P7k-J_R!^dgVG-J=yno4r#9{OV1XlJ9MM zNqR}r0d#;HKRf6B^VO&Kqr&SM20B1a;q7t1qC@BqI)n}(V>EeyOmR(C=r_%NT3&!< zIbf}9*9wQQg98i^=mXtq`VH0*QnZYhGG)SAkx-JiLUqsulL?U{DzE=B+oSS_(N#t- zF!~?nl7f)-j$y3m`n~a%>Epj?z8_SBh$`Bs6Hsgo4N8VImzSnGva|5IO5$Xc#uEOgDht;g%})*lX+9f$!LstK2ZJGKm^9c%qWexrb*M2S)z zE;pb4n~4bqdXd(Oyw_(W>k$EMLk%_5P_seEHvjs>^2{o^A$B-zZM#| zsdEo4qYA161^WLag5@oGP~&sL*YtkYDb`8W`}rc1z+i<0nP5jB>dHHc-~s%KsE(FV z1=W!?m4s5{xkE{bv!?GYK`}pDdH`az40M)GUFjqiGn_$)=lqiy88%) zOmH8j^9?8YySOkhidBQa2EUO*zs6=bLUFI@h*9q-GJt-SHysTZ1Y+%yGiOV~_bAa4 zXtaVVX^T{59NJp;rakABOm7|vb=Ii=#`+f4^LXI5$ekZ|m-G;z^xvb4gdM{cf=v6> zy^%m_2b6$)TLZve1r17|a{fe3T1Zvpj`ejALcBI<=!F+=1);e02Y^Mc$Z1Kw-kyfJ z%N9QP1~dktaCs<%oE99B;8Yu7Kk>|Qd#eAiLA1SxvA`@B5GBrb$`^unw-B-5eZQlq zdQE0oF8|s4<>=eU>nK&G=C(fx46SQk`Fqm$?X3#$+ZmHxstn{(0+^cm22-l zFza}uY>*53EroD$D82U>=(M6^`Cfx?sKRa$!yWr_#ANl%m5*RHz)v6Dtb{$cd~E3A8< z*N{<`-xv6tl-O=b!;D=veN4S5WPJP)JGc8(=*c^ z7$$zJ=N#YXZ~X=TwPad6Wyz?8ql_`-|7xy8IA_T-i-r^q{qN+VV)K;#^Lj;_GT|o4 z%+70RFu1>hA)l|a`)N4msIzo?VdYwzDmM3U&wI$V7zp}+>Sd4#@JDYNcn=i;yEf3X zXJOtz-+K#7X>7^87^E2OJ1px;nHFmAhHPS%0QC5_a~Clmo|(ku9T=f?<_)!B$+8R`>Jt6ajpWacjsa?k=!84vQzQ!_r@gWP6_eXrv2!zY_Aza3)CSf zwm%uNR$l9~hvi1Lp2fJhxM@MKr%^2w`LU_~*vgF~lHBFQ>>WPL5ejSpI?&AdWO<5X zPWAWekcKWw!dG(6QN}YcG(og|~n@QM;%J zcf9xnQ=&bk_ilC{f?XTk3hzd5oIcqb*=!n@_d449R;gGHAJD}E3B5)BzoW+no$I{; z>dP%Gf&}neBC(sMQX=@XD&Ah~PopHJS<_RTXo)SkQt!pv*KuFf8}+Q)nx$tpYDyQq z`i_2RFcg+K&+vxj>-Ofj#}`}n&o9n66WOxI`;p)|oNI@__nxz;Sjslj#%01up>qp6 zA8pI|{eeC$*c(St+G7;87YT?xuHrA-Y*y?xBvw)9G7+ag$gMF}OL)ib^XPgtrD7U- z)ce%jYQ>|q&R8jiH&yHEQVI3-3xdAjpdgC|QyuP%GoY z?oA&+X~VNk1zML{zCUm(I7XLuoEk1%udL#h4!x`f49iSto#xKOcS987sJC~2-Rj6* zi0iEQm_y` zH+=S|g-F7mc1I07=C)e%`#*(XPkB_4lF1A>(*_@dG0DYk7kZWPNKi_-*+!{H4;-5q zizR1_nQFIq|EK5PCG7T>;HJRK)`AkCaVB;LWOgr@ri2Cm8|led4gRQi!Vu|7&TNVQ>^c9iW;Y2`^hxHY>L>|ItfG>|n zAx37Z>j03q6@P6Ho&@$Y^?O0(?ao<*#W_*}>91k$LPdEZ9r79D)$6301d5}xuy~tkj6}u(w|B>j zPgXYEx@Rn87m<_q1Pz3YJRqF-nh zfqxiUqkXF`iEQOqxVZ61edmD@FO*8{whY=kL?7#27__|?ekpW0f!1o2r5s_UcX(PH zAPMfYjZe+qu7HiO1vQJYa7cNG-i<7NP`!^S-Zd%xgx5hInLr*N$Vga_!Tx#QfWKRk z3V4T-bid9A@qsk?_IVU`2)BY#ak9gpH;JE8?e^9`{l1{o*5URa*##I z?3A~TE8(9KK!ftaZGsllC|V5-mO|rfDAlx9aw2P?i#Tfh#ItYK1|h#$0$^cBUT)4Fk}XGlbD7x4Eon?yy%s zz1t3bDAI&|5gc1FO=f>L)2-lLc<2z0;)EdezM2NC@6Gs)LzM`&%v&_RwF1`?q}5GC z6w##5ajDA*gC}T`+;=fOH{E!_im;V_y7ba+R=LSWFIMpir}I+obK=LkEJ_J?GRLRk zl9O77QCx@wJyo%@>4v$BCbVonUmb+>e1&rTX#dY~Y0{XClrt2F4;Uq^Yo|+3V!hH$ z7i%dRU~-+kWrFc>(;5U8s}(I9B1u?i}Oa&0bH0f{qQX~?iu(By7m znIshGIh%D+!uy}2=gL4-aWJoU=QY`m*ev@e*?808*A2Nn{*rC08+jB_jn|iL?q*w? z36>)EFH&M&Y6?9tk|qu-r0m#!^I9SujN{{R5U(C2;v{a$kg%Mc^)6w|v^0Br zhq&_47R5aS)et*f)q?(=rVlr;RE|F_) zEdJ5AohU7v>t@nD8lVL6+q`gpz-S+BcX6aBVy-%K#O#FHHeTHTX7A zfK(vmb%=X`)@h&Q1>{U50K{8JmvX40Oz|Gwvbk5U#KaCB@wdBsmm{9@xm(&a9@?;x zC)ZMo2*H{=kTjGUY7~ggi4yO@<%ZvfqQU6rwwe&pZUtRdTm46|rPJA#WxPi>6kAIM z=nc2;5mXHz5FM*Fnfq=()--J~%iJMj3J>2;vn{U8?m)QTzgbq;YWfEE7k0WApGFov zQlvH5Q6|6U`om8;PoNh9UoGOM9C03Wx+kUz;Ce&rlJzhBm?`|kMak*+FAewD=D4=C>!ha{4}3%6bWzDYJ~{K374(^AYl0Ee3Ct6wl1` zNQO4IFH|kYMrl`HSS>nKe90zew~0~2-k;lJFpmHM2i!#5q&`s{E=s*1E5e!K(o|9M zCU~8PDvIb6e(nbKR@aDS1)?F;uJzr6coP22?}pz8MH01~uWCXbCq+Sjj0W;?J^->( zCr(0niH|@H*$`79{%{kQ6lS zh}bNba6OTb{<_|Zjr=D0l^g`QhbdJg@*8MTgZ*eJgV}wRXjzC6l*(BkIgu~s{|`qg znP0lHyx;V!0Ic+$u&&)8vS{IRZ{k*g6tYU}K|0n7vr%nH{bA#mF>MXRk>-mL^y)S;wN5GK|BsK3p!_}xDz|rx~Bw08n=U|y_(cAH&x+MEFSE= zyANOq1l<-HP&n&GljvO~vpON{5b8)kRmaMgVlzO!G!8?gHp#?JM?bXDwZ71p=Q^I4 z?iMslx(dC@&yCf$xd%RB?ShE#YzQ+U-|GN3vsJ68?4OoF@9r`zj0 z5m)W7TIY+l+PCcP*k@jnL?!eJDraTw z5un-BP(w|`#0l(QB8hJ-8WM)|LDsFT8#y`1S+GFBU1#$DLN?1;W*Z1i9%y&jrS=2O zVZwE_^g8-D3E1i)fU6mFOm?p`{=4PhiU1*b&V;I!?Ev^;EEqH#Ep3(Nv4apW*$SKZr7E?s_ELa4`s>%>Y^Tu~ zF)bQbp^Rn$UCQOHO(uJ^1my2cw);L82>}b^rIUMO^>k^k0%2_r&_;N-`|;Dr?*AD9 zHG1aQyB2(2i)7gEx*myR&P+iGc7Lw+TaD7r313IK8AH9Xdwplz+MPDcbn-g^z0?#Rn+Ix#;*LtgjqHG!=4!qx4ofK(MkLiW{-lI4 z41mh;{A}aN6(e+YrkF`cLbqzYR_j)+)o8dJlyO_a7U%xra;?>9){+26G-Z2QcWT4F zmNW0zZuDC~e^}{W((R;ssl;Z!XGg3E+UZ($s8d?EY0W~6aWiGhXN*0OH;;fpoWcap z-^tx@e4Ov!H6PF`vgU?*sh4`!c<)ncC+a2MK%-}yBER~SKWfg@P5nVKwd!j}W23*_ zf29^$LoJOo=8kw(N}0~mE~}|uFEbZvjIJR~P3%B`hDR;K|C=nI1~}giiPe@UFdVDR z>DJ)SeQ29ed+Mo|5xL z%9IJOX=kTmh9@mpQa-j=JO?9g-m3AIpA-#TwEso14NXt{*3K?QRb5()?dz|s!cx>M zcUh=VsWNvIh9S$G)S8x-)h}?oh1`^z#OH6D$Ni6g4I6P=F*FVT)H;PNTQL`01_=B=QT?IjlGH8V z-PQHw;X?*L)oCMz*g^i%7<+v);m@|naKw+z{Ft8X@4Yc1Nv);+2P2yT`Z4Zj@ z9u(=#9_vSe?K;Lby8@*#`&u6k@0nE*CGq|0CZ&SWR`@mTCsl8a?4=MGFNKdxP>FG) z%3N%;%6#mRyB8aK)tyL?8%5lxQudps-E1Cd_OfiD^#oOChUk2b&M(vxOf5lWcWo3^ z8SzP!%$IZ}gD;8eoHzEk$w2(*8W{u3WL?ncQLXc5^h87#BATFK!h~FVeABHx16q{= z;%{_u^~uOZO=$7mmtS})fLxfGjKr7#i)a-cNW?SwNnwv^!pFWb-+mF2t zj~jVGekp*g)xeoi#nUpsbKcu{bv43&-&asr{sR_W3f7l>> z5cs4$yVCzD>%lE%JF^0w<@j-!ym&UX6wn!f_8{fg%qMtvwz7rAwn2=_d29EAub`Cw zn;me57s~w4Ko_q_$vzV$zNE+Mdi)>mq$N;-Yx0K~?#>8YNT#9{2qi%E%ZhQa;g^RZ zt`Jk1z*)sRI{s`D4)!#K#s~B!SZ1*?AWNIMw4}q~i(b=v(w`T|_~SHH?w;V8>Og}@ zVz=UYRpR?4YOOlFVi{_I=qxGY{F6$a*iWZUX0T+dKs^Du-9&u!R>8#jkz5P}WJB6R z+zolxdJ%SG)W{g>?cskWZagP2Xr`PnhFqKU6XIyZ8{RFMoTao|``gqSvnxZ}?&WMm2`gwqJ@fSs|?;+G{jH5-=fmSwZ zX7kwU6MXc)2_3&VZg_!DY@LathZUoF2E;XPXNv89NkuZGF1C6!*PnY=rgYX)jeKfF z0wsP2C8LHqk#Url1%Y1()*gcLv$RfOxgnD;0SOFll+YBEIi={dV2pRKepU*&v443= zxyPv(UWzfL!z=8Fn=s$#Ufc776ON$Ak*PVIO#zvR*Q5sWx-W5;?yP=7$8%1lasnv+ zQ(dPR8$2zA<+>cs+(Qpnhj`u4>vDmm|GAR&ecl;mvj$cNE^=w4xRU7}rxHz-+8;My zx~`+a<46F*vZIz(=XPI7Q@DQ61YR?Bf?=^T{*wqIR zJ){n$`9g01LhTNW=mxIiyR;B^8z99X`g#K9AbY!rln1%@DkBKF5JnAI@h-eb*-}$k z@#}s`Ved=(hB_;mnd#YC&_+Tra2>?~;E^e;CfEIAKwIMjXC=&z1^dDnoGq6Doqzg|L1x!vaQ!zc zC$5%9gWIcs^=ysnBkJ@JboBJQvF6p_lP#w76M8ZcM&4CKY$@Doj8D*L z0>Pt*3l0RfW`@y8!ND*F_wBnxBJe&R7d!)_gh3DfjA|H zZ>lHp%pHnDo*Ge9l6qw8YY-!e^2Zx}U=6C%VIRa&ke~RU!H0Ra^a_BPApPvI*K7<*X%|uOPVQ@pQxSDd03};T zOqzYQY}ewWqMgbJXKsv4mc`?0fI0R5bc6zM5IRaw2^H!?P0vDKp8>e;D#NxFI?9c-#{$MA(>uUI#Ma3d zm0Q)v5>#XiuoY*c#u!JI4s9H|TfEUA6dT9{@U$o&`t_FrwBukxZ#QGWYQBujk>X~c zE!c^`mwQ27b0m9xErgQTXFa#CgJFu+zn%tSV??^>YBIu6+DIs{6Mc7s%99?zjkTY4 zDK_?e{XL~79tEi85{=I|V}Uj^+NUgdVQJ0C|}vC`Q+ZypqVD^TS3n>9I37 zH(9Cl+l@mvg5|%BOJN0^`hqnX_!FuI5Nu!rbf{!EQo*dlrtvh)=GnN0S2PQ`X^s}N zzf}dnCc8{tsh$ZIT6MmY7{uaMDK_GU*k+>9fX{tCj~ka+te8Xt4cr90($T}5f$qAu zbGP3|>cUDN5FHeRg-9yn+l_PgvY1#41BAthHpkA4BMJm-vpv|MR@Z)Wui6 z0xNC0)H=|Q#ji4I%_Hpwn>*K23O#gT*do|Q>>VK0^jnXRSqsn2w^#A1s$`H|L#uOpGx2v4QEkUQ4LxkfDnY;a`^2H;&{fBG*G(U; zvSCx5L|CwEq8p1H`6T}4z>~?&d^>(j>O)Q}%WGxa8m-|T?l9;ac0JkQ9EmZ#Q}HvV zk?5nh(;?-zwvQ`AA{lxZ4*aYqk9c6lE{R5?Pfk1wN?Aii+*xWePexY_q|5{D61tNX zCOh9FgN;axYCCcMOQmcGWGueJ?MfxP^@kFFeeY6M|7Xh(Kul@0b53}i_8 zL&vBdwkIC9y5N|>R*l-@Hc{=KQQ&V8FO-de7Co6w+pSHWA-boT0A`!WR+Qd(!O7VW=g3J!PJM#E+$~o_X#D(576{lz4i|cef2>58j9;z0?$HjCbU55#hck6mZPiy}f7PX(FIvENfxtU_ujG9ks&Ig(#q|SzmXx11y!v?^^Uk%01CZgpS%6 zQi=K=HRvpKzQPIY`&!m`nejUQ-Y~;x7Gt}jx%~AJ{qLCGJn3dFUa!6ct36kH;!KZP zxV8Egqk>q#lH%PK`v{$>Kp@v7S7%*8pO>4y;n&;xUV-Lb^ZuE+Nigvm5l)Ysjgu3en zntmI5J*Y4#yoIVNJn+T*M@4UA2?W6xLp)wlsVZwCk|1+JDZ4`PWNp!O=@+#~n&uje>J4O-2EH1<~jBeeE=4 z-pZIOK^MmpSSImp-P?}@{7SDzLUIkJLZ|N8{>?2>)<33WUgGuaHt#}^(X_5}%y#9E z6Kgrq@^Jd>E`!iUhl`E%#~*A)olocHzAKkI+DBYfcRkt>J?U`3wL@OHeM{`87ym%K ziQ+pp=byPZWdj}2eIFDzjvl_jclg;g^)5-_Znlz}74~748;O;mULN=nW}*FTx=D3Z z?H@Z|-$&1(F!5t&9;?HvKGA2AHj3zEZPvEaV{-y5g@M>ow_P}HqA=JBJCPr?!bZCc z86>a*g_Z|()n}5KW&djLHHh01uR=MipJ(VF2q(R_WT&xdPYu5RS7Vn#lbJm<>&FGd|b+5Cy`>D3|<)K1c34bN6s9|vxHsDM1Ye)g{@V#1oBU;TVModg-CaS=+ zH5DM10CgLfzS(>w<;c%v=T;e z?5j|+5*7>qMsg(7-g*lrsQXs2JW+O>aD*9WZ~fY)KDf&+uABfeIG;ZO+NJa2M9SN_ z_ZCy&cSFFNVAwTZF59_us(7~|%9tdJgE?QqcW#2G#RJ#{y^iVt^n|^&a05hksQ%e< zUIqXX#Ef=g=_h%-BU;TVLL5wJCCWj!uR+5MNYM;Av!Hbvh!4^**xSxQT=!^k;`xvp zvleI0-YjxLpS4ET_FQK=@%hw{Uytvjv?HNC;LSvMTHr)^DMq)CY?*pfn@yx9D0R`l z#1G8T=<((Ky`9J98#EFTt&M@zE|B~Q0c3C%)`NEGyql0>J9@ikzy92u{eec9MO ze;*UrIL6jtoYaG29ni92vU%i~9x0Odm%@p%SWKiiF5&!P@977@?7b2;>3dhn_Vfo> zR;opw2kU~4?DUY*{9{moJMoq7{U#-|O6KiJ`O?jfS_K#0U-T-zYR~3PtKO|pep|cY zp0>NcJ7M`BOF^mCK?!iu4ri3Zyt0dygs?D+bot2krI*H!T`IK~-uMgH@76TF`~5q@ zmwpu6?hM#RoQ^`pIhl)!z#T`{-8y23{&Wts-yI?AhNY}6=W}A5WL}Rlb6)1cHNlnhJ{+DpE55sUDxUtkCGmjjamznCan0G_BSm0GzDLx%*9xRxcr>Hof5?F*Jz6?oV zIW}&4ofL0(*j+BA8xlBY9$2|fQJXlo+rKY_1ReHS&);!G5sTV&L;<=KQgtkZVt-r} zemdvu41vIuZVkFAUAjQebW)e_+)n*wuWX%*(QOV9yIWfpo0cu6&D07SlO5+JvE*A+am`0~mb9!^B4nAoQJ-!Oz!)jEeV0O4&Oz zppEd|4q+v9uzoj%-X(Ve>3^!w?P(F^?dPD5%BRZOl`=vMp0rPuu}{!3gY&`%rfhrR z9lTL(U%lE3r+d^oPuF@vIP;?*Ys${jB79&j_|XMzd)tlN(|e=|!Cxw?pL!FNQgs?O z)R4dVMIWnEfvl%OEQPz@cDeqfVoO1}GxyOQbbni9BohpN{pjH+D+D@l1xeeRdj=mq z{N%N2>Hn=#!-Q+PlP?sFp^~nTP3LXG3ssR~NQA`wWWiISXQ!5lpVv8$vZso}b`;KY zey$QTqc2#97mGur8htm0T-$CdA4eEjnwjEAO-o{t8w)ymu@8zJs@R^c@PrVIFY2$hO`puH;Pg|?g zK$JbTsif`cw-dq7E`zMbPPqn2tL=(&3u8UqE>mXVN;J4baRpv?8@7cZ+M3z z0v>1quE0M-xB|EKdKvI`;cs}r4qSl?;tIqH(#%M3;5J-^cQUTR%U_SAx%it7*o`aD z!xgx1T!mU>%X+rR-)+crxYee>QI!8~+7!tk=3U&irjMG5@zj(}_%$31rS9n9wj&YZ z0KCqsPBuky%&V8oU~bc^ypQB@Q-O>(4ey0-g-rr14`kTJSWOarie#fiWja}C<% z7kVb%5@??wZv_UYp7dACo11K}x2Io4(6oC$^wU$IH#T2Ian&lI zkE!fzm8>Q)S5ox^73)Xn!*%&A)bXhqY-19Gr!}7!)_sZp1O?%E6yt5i_2+ZRIo@a=DoZllMhMdL3A+l$zC8w#X1^96m zLPhAIQ1^cg*n2fXe&8sW7!|=t1nAI!*+k-=08II9i&z-lpOy6qKEA`Suk=Hb#*T|g z>U6e;1ApXCdstxboI*-<^T(SLE zh|Q1#lK^XLfaq&5so^gI7tg_sSdO%VyQdv7ZV&z>V+7{Ktrb??5PVT@hRCzQ*0~;n z9o{-Z@B878?DtUg$|1HU+3YrO|ujPcptw%WVn}-KK;}lal%{ z9)17Qm-S_9(X3>!P!`sBrTQ8W(v*Ykml7Z2Z5BhGnsSoJv}|Ub0m}qeit{ae7O~C5 z=Y+`Tm){20FSvgBC45dlKd%Sa|7V4^5^5b|*)M@ZRe(AYL{y6GXhe^q>;@Pi;ZQ3f z-_MqDPPF6{aamiO98&U@J`XvtM;qBECH4bT3%HbHCHgR1)=dDhO$50JW$=-6zxO%< zKu=3;#E-2tQ+Kp&qGeD|LQ*FIO_qO2@wUYkSV+&_+kK)QKWyCm!Kpuw#tJCf;$CBv zStA6_z8wBot`OFQE*FTF44ka3++z%9^;~LY=X@Ybrj&+|)IXu*i7u=C-4_ zk~i4j_9WIOIsqBWu+b?w!TwRoyp3&wkmYTPBC;pjNT|_O*l5dm`@sLcgj=U0Qi?RT z$ModQNf$qYN&Knj|zk3YA%$+3wJa)4#Ic&y;xf5_E&9yQ&FWBc=vk7;vO8? z;UNHngveg+FL}^uzxA@MlpJHM@1Cq(`uWv@XH%>TsUs2S9HCqrZCxY!_Sj$Bg`~er%lR5y(^5*5<#=v5v=s<#K}dI! zBhzHf^r6FJYxexD`-;T9JB%B5?RaxVoO`lUq-<^i{umcSu` z4BOvUX_z0upk#Y1;hB&099`XSCkh|hV;r9TC7QiF9M)Dsa2^8vSab-IiFq7tV*6Q& ze9h7^Yq_$j7r;6vAC>CD+@N;Ln*xA1ljL{9VO%o=iU{8~t)*nnMJ4X*^RQKUIr=m) zM-N%^L=Y7QaC$ZcQF65Z(x+vMHH$KH=Y$GI2re_p3at9JW$7ztzlPLufy@535ko7H z*+zm6sD73GGLyh5$_MD;;<7pV*mPNw3KaB<5c70lx^Lb;kJxhu&uMl8`&7}ub3MmmY(Fj^y?Of259*Lt*brLwequjq zCjS1f$+kx@YSPv*Yxn!Nkny_~dlb1%pEVKL$Mh;Cvr#Hj>A||~UtbRvoOt!IE=Z+{ zxBA}iXlT`EX6SmrY?ezYUVdy!0;q_15sPk`^ey)&~UP%EMJUD`u&piM2M*5n)|FZXiRugH`@$+S=^?TKW zt9`T2Vgm~M4{=bKb4X!Dmol)|8=&!Ckr zisg!U$1a1^Fduw0qZkzE(1ZZQou#DniX-Xz%&u4G!5K^tW4XVkwuqRza+ zUo~IJ^UI@*j6%Q^{$CWF$;XyyYZq3*#Z6KpTlqNawqFrRNPvRgJZUd7dkwd@0z>uSx0t^GL9D@ygXfK?mK^lP0?gn_?J!y>!FOjjjEC>T6I(B{O1g zb}|S!$VK=JRwRS#svW3x8!FlP%z>J1|4H2W_xJTh50zZn@!y{@e1ujB9Q50S9d@R- z#c?(;t)tl44q68o+=JUNVRtWw6tZiVzybGKyhvHvqqlI~mSyr)<7agBhcPcK3*3Fa zBsL3QQNT};Yzo{oZcGyoUd0a@{3EtDEtO1={APE8clfWEJ93bN#+Ahr$G!P^HlE=$ zEI$E$8R#ypj5HC_7J?<6Yte!(KNCd=DxGUloU_kjIGs5J#QH7;%__dOGj~mU`ac zD165}!;@_g0mSE1P{ZTtOK%5%C#%p`U%_t-t|TQ{o~a(@%i8S*m>VgW>6v8xZ-osF zDJQyga6k4yhx`W`-0G;sOxJYJD!1F#L6wTJYC*}PoX7z!7eYPv0SRH`z#!;}Ml(! z=I1WV7tTNjI2x2Ouk;q7t?{*SxR(9XHV(0Um7x>gttX?Sqpc&WR2m@_@) zv6T-Sx(@GLe!@kcx8taRN|r*xl{}hZHt{T;1p}KfIV96PyToYY(eAg`yb#Q-{_u$@ zkco!U-pLH2P~Gm2!9#O$rJV~CZa{kiq`^2a7$m1I{Jr)P~CO=+h=PM->!eKs)iU9**Xn@bM9=yySjO@YH>*gDA6kt8vFvl zFs_;QeL)%Xeh!suHL%p#j-5pYsmgr*kL)&h!a3A{3#iwkp((7_F&L=6L|`whJ~I!| z?h-XkEhUY~n5Sap_U*jws)M;@O6K`i#3nA|;J7 zQ0EdbhRGm%y=b)W!(4K+1{UWIUQf_}B;Na_fuw~M)u2Vg&#WwFFAIrk#p_iY(Ra6* z4^Hf}#b3f>3DR_Q} z79p9;Aps}NLxodcdn4y~_3fbsSDsn4ytDS+U2iTX>-=*LkC^I$LV#WL_ZwW)5dq_U zo;|e+11l(TE% zm8;#0bNpxV1zv8Pqm=o_Bsku4V!oey%L`J`t2_5O$^WE+GJFbNX(q-1v_BI_cWB{( zoIx<1n$5Rp`!JE2v9g#R9ayqd9DO7s5lTTgn(0nsJcoYUGGSK1i!EdKj^r9+amWdp zIsGfx8WeqxzM_7)oGPb*Yle0HKnKH-i3u>SK&wl}r*KvK;gfZNaTY8MozUpoXP!%f z;csUK%6%6!o@-I4xf513%TTzU@dMV1C(}es1I3Q`Q|_doG=R}`3nxS=rSJ(6k@U(> zO@7M2)j{BDF8dC8=w>Y*mPfO>BFXs6cW}Ep;+@FJ<I`iEf=uisJx76;y7LA zX@XOb#K+|(R4Ja3H(M#x?F@fx+{fx$Hnv0S#9(^>TH;NJgs8zWH#u63=q+X#D8R4~ zGl`ea311Qy&Iz#+ig{QFt1B{+B!hUHrCGTVwd9H`0k2V7 zPw{mEJ3!_sln%Zno)u9k`KIWlTkw#BY-KW9Xe!H}i1XbI(BEf&>Ak6G7!du|b*c5C zP{3i>`cNVSHSj17ir)-*6z2%F@QWrp0SnsO5t@7!ynz^69|H_|MA#>qZ32epoco%b ze-mahVhBK@5rYpzJ&)s5;k)?bI8(@5QCjS#A0za2VgT#f8w$cFjUdF4N{t{~h&l;B zZK5GRBYT)1WJVXLMi=sXsYpV(>AI4b%62)p<+SJiliENB41~-?evl^p@)>~jm%gZ~ z7;hIl5grGAnR$3W;(X|?o( z>p6+LTX_n;W~1JH7}dV_owH+HZ5@6RVb4_%a=zrTf@SOrVZJwC+Sc&TV$X2liIV`i zP(p%~hPui3riPR>um#kJ4m1r~pn3>fBy3c$WBRH4O$i7zwi}*GBHa0hf+0gSj{Fa$ zmI@q~fa|FmeLT_^iFUb4{7-5-nN)YN0Q3F^rkzKge!i%*xnc>0M-9xwAr`n} zm*tTQ%%96PLOZ`Bb_L2|c~!v{SaB9|?O3E($2>EZsUp1jCsjxi$;9@_cP0b$s+MeI z`9)F~+sp>59=iJ1d36>RA|y~tT0^8wbkW%iz~QILIaaeqPNpeYc_bL|T=&F(yyeo! z(ze{3rO&izJ|QN-BPRAr{FLAM0F+}7AFo;c4Xu}{j$~f8`O+vfhuG6&=SVXf?90$y z0jvJk2(Yg>F}HvQVvf^jCBgkSUa^PZGFW?;J=?t5_+i;`%MyB6sU9xg=#%XiN0+qa z=90Z3-h=;>Z!|qtqef296s$U$IY|S26m>1L_CDLJSwp=OEa7**(NGJnj@s&fg6rV~ zOH3LBhE0Ut;f)KADbN;FLhH%Up%SW*B)I zo3Ds;=!n81K|rOqfs;zvfC{1ldM`p(`HnA^m2U1X8o1b0jJlC)}?m!wwE z!ua~$$=u1jNn6j*fURa_wUzEB+3uS3p-pM&ygG_T(;D zv4&N0&&;K3*L+-%o<4p;dRpOxMIMo5q_Db_f680&CRG0evJqSsv?;QmLa6M6lvmG8 zxp2us-AiVXkH`dCP|Wx?8>&)nMf01l8bdkQ2cEXPuP(=zXXt|(oC&+O0ABqAmJFa^ zJFo{0l}yY@_$ijl!B|~-9)6OYM0ZvS4=X|AcTdQZt8>xS=%Qf%;>iZ&llE{$>Ho%u}pKm&^B0GV`#l0_N zRWm{RL;q&5CO*L|QG5r%--D?UUGCcY#ac*er3W zjxQ18rxvY8hSvQ_28UXn52cH+zJ?4!Q7{N>I)!Q*WS!t{5gn^}pO-%J&wGwDH6nM^ zN#{%B{SVX&Y1<=|!JhOC@Hgz@;AIq^aU?$$Jud%HaGWTXo1C2;Cb>31U+S z(P4!wr1anB_CfoiJTk+R_{;@jBw>Vb%Qn?W+~>Gq z@)WB@N<|Xp801`uQTK;;QUJ*ynANAyVM+xTD3hB4R9_xhkWA9r;j+&zWKDPN1wyvj zLiS`9-;>y0K*DFrYP9KQ+g4JyUf6z}-4;uoJ*AX8`+~9ePGTEAWPbOPx92Am{1k4v z^CH~({GS)B>3{tTL?%!Rv;}|tE6_P#{w+w6*6-sF-Nq3Qj+6y2;WToTsxm;c@!Bl5 z#s)hb^}<{7_EM@`c}gu>Y?`vwd#j?B+8fH%Nb}vv*T@#q@a3#(H5)(6E^Tx-$=d(; zrVnDojMJrE?4@7+Ro##qc`NS0!6%$~Gu2#18gxpYHdBsLON)~*OX(`@r7IX56_Z&4 zvK7uOSx^Q(q-Et5m9b!#Kwwm1E@$2q?$5a{cxeY`JO9P6etTy+`}r?%;1v(P#!)Aq zbLnz>rkG~NC9Q4sIhNRL!4lRpi6ndGIIh-gngJ6Qv>CBrS+6<$RGc|~oxs|4>_vuG zvdq%}2O)YaIEhoI3PYMjX^WR?7Q&7wvS?yYDu<~Ci)66(E96`sG{&ttCCz$yp0LLO z4SEd+22F>4dImp3^hvOVdT$&BPhSxi7t5@U6NbVV z6xaR$d6}DO5yy7o#0Km2n3Aovt&tRv`E>4lPpqrPy4nOYQ=4=cPJWG#be% zs`*-CJ$--lXt+Uy13F2N{k7d7syLpru@XWkxW9wD*%&_B&^S5)1*f(rE`y8ybZHEFEFEVaSl-`NKYw5YEtFUcLS`1DAnua~>~``mkC}{}Qu9|goBQ%` ze}gnqSb}nW-|JamB9h|fTcF{yW(+h-W<$Xm)P=}LMl_%0G?%NJ81h<9pXFfmGCqL< z2rEF<2b$OIwCIvphY}l1Ge-J4DnEM-K$X$f8SV` z>oed>xdg59Z{o;m%0*ZRk5t)^>gJ0>FIWfQWiNc57`c`{VV!br9!~auKxI6H)kGPz4aCdzd5W-)_yxIE!ZmAFjtWtFAYwxZJ|2{!Los zK`UwU#@1CcTM?MbBrASjU=cJQ2yUO;9|m2_=nzATsZI34D%4?Ozf$_EPC!wIGs|eq zYX3Pw?&`jB8zjHnp5k?$DJAf!fn@q28%g6==8t4~^Ru(_fGAS8B8$Yi7W;5UtN7>F zay=#?*T~vqjZC1_`}B7*ZX$N+fT=dRJyvV0*AMh@I`Va|ef1{6C`sI@ zoBNkNm5O`?b;Up|Y2`=Md?(mW3XP@A3Bg|Haab24uYbg8^Y4>k zoh>H5U}~0T5{B>TVQ?zcmeS%sBr*4fpEbz-ezi$pJS$KwL{|47xL|Gi3+UXCU^M28 zmNZv-;Sc?IoZd&CF1P6}iO%M1mh zej{*{Sf`9LJQ%Rpbz8{ipmQv@I>-8t#be)lqGX)|;}HG3W8vu5NU`ad8~lluo?`4u zY|mHhhRpgF3iX@eV8tJt_TJVKd7qJ@0*s^Lq$M8||GBM}i?K4RbA(`{93!`)|D^w- z|Dyk-cdofyO(Xrt;K?s}Pl`qWLqNR0f1&r=?m5B9m3&IhkqDS4DFrvFO@)pRg!J<% zT15=d(^HP^^>+6Yz?MIFiww&8TU%6WHua2?Q?j^kLd>dSr|yf*eLQF-kW7TG#GYO&N7x#!KmCSTY`F zXg@Wcg;{d=u`4cH=e#0Uxmxj35uhO032c8 zbq0{?c4&Nq&I6+71%TileSg+M(2bd94&GzL2cTCfV~v3HZFJk&w}i95egf3hLojUyDf-p;oreZYlSQ7!-_wm{ieuyl?YN5+y~i4(mHiXo z8-VKFnJft_)1v`G*GZ~r+-$XY(7sS`loR2|;uOgQE+L=_6UN~4QC{TH-4nOLkV7lM z8&s9$rS5lL8aQatBq_8GeXf)`Ii0eIh?!?Knuc>q3-}uUu^Ys#zglg?5)e+gjGT}i zO>k5GuZE;VQWxe-`jqun*E`Ths2N81eaz&##kF~rVU~t8Cwq;J;(e2rS8?9>8o+cQ zmj3b!{)H~btvYC6iM^BTAAqmu={^1^UP$-9WCep{ zs{K{tQ_)vdk5{3;%1)}cB8B~Q1lud1>^g4INZgSCO+x3HBI~lB#s~aNRET@|jQ&Ja zfXM=88U(dc!v%=Bsm`_Tty`h73Y!KjqFyOQhuE_ECw#v88MG>xJ>k%)$b))In?5a! zO2N@4EI72tKROOxvnYrbLoK9=khrVz_{GrEP^Nj(9 zC0PDb`rpqzH%Q7sFeHGbMvnJ>LS|ZChNv(}jVZ--hasY>GSt(W59eAfty!A^?vp-leF{>BlW5rH9gqwD?n@-Y)1_KPWI z5($7H{I!2>)`|s-#3@hpGzJ6y}5E;{^;xeq6T^uBw>7u0(3Ix(BBL( zlUw`~7+#dQXr}IlC;*FfDU7v;k9`Vco-`%l zlD`kZunSm}o>7%8|S?=0F*m)lN zVQl^XVRZd{7>Aw@k~VD3G97#Ws8kGd2r+Q*kcj>&#r|&8K6roX`8pOXK&kiuHxG7_0nib z1=S);-BLmt1*>Tex#BKIRvkF^;NbCrC--;Ll2^ngw5%>(U*XzvljOW#9)Mj@} z8rNBaUNVm_)-m9w1&&FaZ2mIm>)yL8S9!rUs&3x?uTRK>3<@GwIDjXda1}Q>K@NRc zCN_wh;(0kgV9`bF`j#FCiBkA zbg4@vUHY=fR=pCg8?#D&o4DbE*0J%TH*x2st!*yZTRD$@Te}GZwq?_XZtG?Z+qTUc zz8$+|#P)7O?Jlis>Rz0;_Al?7X$HD`+-%2lYFwSqm56?VK{tT% z+nK&=fs6mm^lGe3xgA!5WZEJ2v6RD~LRgf#os3^0F ztg5oBd%A|4@@Qz47&T;d&M=)2q4iQI(KIAl11^G5W8)wZ;RJ(4QMcQ6yd5Xx^NOe@ z805*PmZH%*HBJ@L%{SeGsMAI9+jXqYF{TyH78BUj%R%mr+k(f)k||7?kH$|B)V5;k zfvK>th;h__r!=Q^XIwk6=&MQeP$H*7b^lFznXO$pB--Fex(QS!JM5c4ZD#P7D{$1an3!IMPe)3Kt*% z74!gv2tk0`f5wR(3@3+9W=Rh0KRRAY1c8C5;sPW_iV}7EKTZIcEHx@fL?{3OBOus1 z?Cc$C9_b{!o*P{kLq`)o9vUA*>}Rvo$_y=I#4*_?HS4j;Lsi&SITShdxwK7)mKr@c zPI416*Tnw5zb6VH0v1xlAc7nC9d!F&1@%G8v{YNHo~G82Bso(`EooYv>qfp?g*Zi? zDUPE{=Jbq)}7)lBoTwu}sJKCjL07={9NGqLpqdf&Y+zmft5kHz9^G zCjr4h!|g@nzXxJei3a`+CFSbP)EL*P3TaAaa7Q<>X?l6TL@IcG2b0n5VA#Osz+=T{ z#S^wq)n>sO#3h0UHKza$*q)eJpHf)hltOguOpJ9Ua}748Hc3b%=p0pn_c82(#hnYTd63|ZIX049 zjs<_oNGrLuK`+L>2)n@xtQkOa`#@RXU3A#E+Pq(JO{jb5iG<2CJN^XQ63-Cdh=XS@ zLye=wHcubUsL_&HrYcS6Nz#){wo}h+b5aDBYOhRxojMabpV)Y){$^JiRoSPi`^@-e z_+1@&G79OGir_3u;Lm#flH7uhL?8d0Z2n=IXkN>bjyqTwR0L&1%X1(v5@K#xV080w zSoAK-C7ne&tq(e{=4~w8v1${J{&K#DB8bMR@eH<^IawK?qU?6Lgd+~qJv+~}S*Ye& zx5H3{##B;MB@!XGq|~F*xqEI~V!-&p9zZVrHO*UPm{ zc9Z2qCKID4A?>u~P@`RSz8TN9p}FW}i(bg+P8}YE(>Z9fHaUjEhF#zgPB$}>)JfTBFd7yn^<>rV0?Vy{4xRvK^e;iR$x}OtYJOSw=N*WCTw3szy{b0 zOL|c)YLFzKpHfFeKgkWA549pUrd*gC0Xr`C(n^&uF+exMXrw$%{Dv(pX8LA@I`9b% zq>Q>LGjU#As?79K6U!pZwuOdhSpQ|TL7tE6J`y^cSa%ZK(9YxY?SatbCfsT~8m3Ve z^)10*5&|k#l!VzZmfBEi9==5d{SXHhIZ$$+1%?8yny2cdYxT+~1EOd%BGRIw(mQ8! zAG--WhDMCtP&TS&Oxd))S-0jDEfOsu+@!+9_+q z`GwTnzd3>Sxi?5Q%05SBI_DTL`y!qN-Z_U>dY}su@FQG#EO)n zH1f1cbYk>Cwl{H6w5L9fJ6H%StePcCLeo>J9ghVw$RG*il*v;XORWu`R-ZO=`&csF zz?XzeCfHes>QK~jvuhev-KT0#)Yv!nMeI^EqOkk{XN}re2)v&VP3$jveXw#yVa&sS zE_cW<1#8N}!Ugmx-D7>pV$-Ci%OqKn%&^nC**2xfon6l;cDsfeiCBU-D{GS@7SYSg zL$szP49bPCUd_}uOpRGOmTtl@$kRzwL9j$hn3OIl;ns0O(U=Xk1cb2*P^?o6;H&V6 zC;5_AzXG+)tM2IYOJ`MMzKh-4BB6jate-_~OZ+gu;6w2H8~^)XM`VK+>9D}kIg*KX z;;ii_s%jo3baT${H+QK28hi4+do;7E>1{#NX4&)^@1*c0WjA?0!;Oh!|4 z>)76&Jb0MC5LH-{2ohX?)0Wv5d2zhi#YWZk4Jy@0jF{tah_gsp7PV_ZY!pgy8?q)Tmod53@dsv$|kaNS_^&(dtK! ztW2%X!r4LNgys-2h%cf@C1RPH+6-Pb>OnFBwpIfkKFLDzQ=L|VBy~}52GAA3ijk{9 zA5yfs-BYtf%+VN0y8vA+BKu;6VjqePzkiLWS2+YtO9huoyeduAP&L|W5uvCNDWVpK zaJ|?%cvyU#4lU)nGb~IE9Euq%q3A;BV`)ANsTP|NU9;-DNnk<L{4xD_H8sYv{n}B$XfJP0~bE=TahK`Jg66 zt!N<$sR1B(Bfx+F-okCcG+#XYMlhGk9^!@ zQ`CTjpveNJM6(k6R&k`oWMazT=Q(D1pP3#*kPyP>>@#2g~u)}p}Z9S9i zKYUMqr%#o~Zip0xe!o^C#!aVGUSzO}v_spFMbF_vE2?b{KN-3^M+O4ag^o1RI)Vjv zw1Qr%KXlLuEH@6RhM!|38!rLJ<#EfDP-($jHY>KlEEYGW2G+tQ8KDC-A=?xoV z3<^!rsL8bu3hJ_oCN89m6Z1qSI8?v~8G>9S`$@EUI^P>)o&=`qQz4eXw~&Q=wmm++ zoXJfK1R&^r4`4zMF;3+T=vkcpe+HVk%pn z$MF1v!D@A44FEUyyo7Olro%35fQDJA1+p&dn%8xLS|No&+Z<{Pr6;`tq?g^sAXk#w{y2ghpaRIe1HxR7j%cCWvVUk_}Q zH08G^pxOtZX{t7;UGYq&$yBIi;Ch|d--?QFe*^DRgeC99{yz!(QNwdF(FDKE?pVhB zM8!S&mV1bh;YJAGJ$&T<-B2@JHRYa&;E-ub#@@=m5kzRW!#rt%aE&&bcuUEmsQ3*5 zOc>0u9G)6%MoVxr+M6G=&2%bj^YuU#lsJe)LOQdQizKfxhH!b6QB-IcLGeuUoUu@> zBof(<=;y9WCBj}(7636VND_rna_}<=li4PI?xToeIX4Kz9Wl4e|A2!{J zo&mAPARaJ*Q4VIofiCQ6nX8IFVGY_J{12}*h0xbDGeC-cT`n(@(kza@5le97H=^b3 zS;bp-mGogRsbSyP?~GFE&a|_*!22JuI*7bdd7FJh_xJ`EZp--_;1;qh1PM6cNb9P! zBMk_qI^Jj?15h}37rWuPD_3b53-7D=SBF`Dl?Y8%^e*s^{1;dyDUx)?QXzlQjizSg z%H%Y^MX~D}Z9NWf!q>qy=DTtYXN{emaRVmFmhw@$hKfTx0xRUM_iaeQ4a z*^VOu9dPeX9`*&hpo5SBwA<;S;y37TRs4f>zF$U`GxDBlAAgV9SZPJ&Z}gA8%g_2o z!%Di#`nc{VQRW0*nfZEKzRZ_}cKt>fD4Lp+r1b5%c93}#j#tsP=4+%8h6Z(w4Y8E+ zqMYFeNYx2_Tqtjw~;i$?a`(;nNUV{Ki)>`f}0Mcj`*R+9c!L+;J|g`&UmobDGzJfy4-xoBxq zSx-@hH4g>%s6o<_zoPG}e3_<8&QPZDZhBa$D{qV@NXLBLrA-LaO7i~4TsTQQXcP1_ zMN`7ynOL_WXfKa7yYdmPJ4nve#xUw7N>?+}uT~mJX{f8I1V2{&7A^|iDC%L@UM|wL zjJAfb94P0-0QLW{dUlbM##3IbVUN2%x1TW;O~a`=m4l=KoAc(bB>xLQ>_n{<->C= z!?G;HRSR8g^Umf8+LJ>y=mWPJG3#Hu(U3CD$MOb3zQ4%E0=XAwJq4*58yN1%y(H)D>_ZR)a8&S7j4Zn}aP(3IkR|mn_iXNT&`Z z9rTiFmdbN0l8GD@1j8e~dW_O8WmgvU-Lc$d4L9}2DD+0Fb@RyeF^Aly zmdExm<4_nzey9p>eykBNnpwYF&v^knJBLjgYJ>3zAGvLToKPD#Oeq6AF0658Vi8OP ze3kkpQ39)e+ksXhAHkVR1a+?Ht-BN3o}WGCo_&KtecU0p0trn^Tx0YaJ?I-{Wm8*9 zG&*tE1kfTnpCk}d&4txmh=?x}pkl=$>M^#;VH1#z^LQ0W5Rxe|2%;=B%t)mI_JPHq z$Q(aRHrVJb2jTGGJJyp9lTpMo1*@s`ZWKmcq;k}x2Uaz*gb@b~Z9p+7?~EL_^_o7k zP;Wt>_xM&6NbEv>@Ww25V0%mkTWR*OE}4}A5>D@C?*7qCUl<*4EFdZXQCojWh`lgxS^NSo7*fVy}M5k zL)~-*QVrOAawk_Hs@D79I<)<(ZL=VT@xeyIe8)(Ol;gFhjh>>DXr||o4m2rfETHCD zMVZ;KGNMitcuWvmjKUVa@1l@lj&r!FCIYOK;jp>fd{N_4iWg5tc^4oOPo{K=5N95{ z)@DEo&~pk^avUNG)V;B*A4L?hqf?S@q;3<8Qk)9aZ4#LIRTVX*QFisT0pcjeL&MZ{ zHJ!1@5L@b;(wIW6G|r@%hoQ#h$L48uVzz?*%cXJOl5_&+XN+q;7?aF-rA%;ugjy#G z^;4^59SVO)&prmbG)4>}v5HhW@IXUsKwSc9H0!m_Zjm+_sRVPNA}PsM05R4BQ7V_X zUSAWTG$!0Dr~6~}YfdB&FO1^Ly>rhwB{C0p6le4%kOrXJ_^olH2WQXPz zx+ipWmbR}d0Qbt#3mPswx9xkbm&00ZcPgX=tRn+cP!?BF|C4+t7U~Y64?XTRhQCew z`_&+j&;wvAP%E+_gChcpknkinv)iKgxPy-v{wR7E);Lknae#<4W_B<<1<>~+)>SwR z8nXmgFHyCGf})Wt?Q9Y|*xUHjVqvLvFkT4~)~Dtv#p+hmSCnR!{2JqPg9b!MidgX+ zUNdLi9c_9((+ST5Ii_Vqgt?RJMenJOC`t&FM(6e2bNXgPkKeT^EA_pwXD^7{bR!t; zFI{b^day(aM=Op08hhObc;wW!bBE$s+_1yNvz?w@*>G`F+O8WQ_D9a<^PPsRI@Rt#%@HPh3VW87TY)*%WZyyc7d2| ztI#egY>S6`@L1f4k|E4sl=-h27UWn8N|YV{)dgT+1PaMaO>JSqyGXRDXh|rIaiq05 z(&eJ^+f<=)R7IPiRfpAJtj0E1lV()Qz-TpQPmeW;jwu*;rkTE`XIO=AHC*ruKlVZ! zaX67pw$ru4Zen}vM;v(Ctb-1tjvCi-qfQRgDQAo6b1vY!h_=urm+89lE3vB{((}l3 zTrVDDyfS@njjQ{9U+QLjtHnemBrmealh(q<4C z9)2(L$ z|BB0(SizIF)uqjq5Z@+9P!lD+e(A7D_0O#sk<{Qu=+mrcN^o6APvV1b?2@pSc1?I|8kNxcrX;on64-$$Np&@kyd9F~=lA zw|g`l3=`I2NO&hlq;#q&5uJb1p1cstuUkmRhmUzueo>Ao(SG!kZKPlMKQ1!FfJXrk z5Q^ahS<5Aqx>Ccfn(mc)P|H(k3kDfE4|zu_;I$A)U9U?$=(cVU2jg}kK{PRO=N2v; zO^w|sBwjH!ZWBo2H>q%v0aQ5Sf-7#g>6fI6#hbq;%uXV75P-p^Iu z>HZI2WvpZHStUROO|)O&5d;K9RMTjLET4ucOkReRr1n2bH1$&vBK#H_g&twaJO18& zeWrg@=J%S#Wqh0)xSw@w0^uM~Pn>9@uQ$+7NaHzf5HxD5hKQ~g{8o$9hvJPl!DOboZKf9&SZIl*mcO!QWH;Gti!OO4m#$zh<`p; zTy@<|x7>EueGfeJO1JNxdKn2}ziuf}7UEEjK1pS27}2~T>YFXrM4LUy;YxOUyyE%; z=XN+Px1g}7oJy;zsiiaO>KhuHSj{aEx1GoD5C}yQ>B&>4W&J9WqC??`Ry+IRc|jRW zW{cgO&H#sb2*!wFwpgy#`=iN>TCkj`YPw-swxh~OMc*k5(NXzRo+k2!<;!27U@NV* z)_S4BMS89mdhy5ePLlxS5cre|^STgry>kE;xWs`xc=E7U4fX_2$@7r+GCr(6vNr<2 z{u`FU^pJZ;fCW+nxb=C6l9-)L-bcx9+ue?x#m@1?(F3!Lc)WmszemJRNWjYy@dT8v zzb+Mx-3~W{Cxm}Fw#eWGX{!o+M*KPgctQT=S5Vf?gq#SwiovH>Oz+4W{q>DH3nJj3 zB7B{^*Il4mgsvUK{PAcw8WKYA-2j2xUZm5fpu#p8BTgt55aD5QgaERO2U-chDG^9{ zGFr|=68|g^7D%018Vz1DB%!dL79d+20a#fqb0Z4Vr^~RYSK%`v@F>k#PVvBufO!*u zRljDcUK(}of>vsP;V7M0A4NLC$HbNTC0UlNCB>qW?9H}ejM|4m2>35VAO~d_CGZ); zPQ7b^LIfN`5gfoz*@pWwN5b%Akyq)Pk!-eQ-?9K^2_mq|Z>+$i5MNwTEyXpI)&`{! z^dor;`Sg-0Q0UX7!a{W=nMOz)DSo{HC>)ZF!H22JInYwtsmkTxdrP9Bv{wTJ)|zi2 zL|S9L!8M(_l)&)@gv@!k0D=n+-kB^GGK_&i=+l_#=6Bbp)>LLdPG6~WgrYy$wUXe% zkkayWowT)K4Cr#eqMWc$dBqlBjwX1CbWs*VxQ}yYI>*@zVwONW?n2yLrIdUm*>+md zD%()W6gAbdX;viJD0{_HtUKFc%NeLiH*J8)eRL-!qhSek6t>j}n~R0pc{!(=*=TUT zi@kGJ#xs(Y(M<<=wvOrUHQyzR&2H73w8gN)*VLHl2y%$1)j9)_^kY#~BW^t&S4K50 z#>mToAHp6VoS#oshDJfJpT8CnYMX%c^QsMFI6y7+cGzIsoR71qM@dX@xoTIl~CUWNmY)uRGh4IC20%@j#CV z+!8_f&}Yzlg`gj+UyugPgRY#9p>QCtKO+9sC^3yb>x^I~OIpyT*eZ@!UoQceB?7tS zoI;2o*eGML5Je{2s#Nb9DNmT;jBKVypV4R`%4aZ-iVdg3prZM6uqPeYA1x-Nvmz(WrPXfB)Ba^Mq{v`4PpX0 zg%~G-d+sj(3Tp3>-bf_4%OSI<9L`H6Yo=Q*Pjk2NYA{bRwNc}45EpNKiH^6&%6=ZR z-$m}v@!OxWRI8?0lVr`R-BN>WcWlG)dq(JbS556H{(-zzna?o$hKG%r48P9+GY7#D zBHi*O2>eUGDbZC}j!wx-vCOX^tHi+CGp8aY3`VXsUJ7 z#?b7-ZV&o2Vn`F*pzcQ?cm=@+P|)8-55iTKfS0j{IUE;qcuWW)ibTYpc|_RM>K;## z%p$>LOVg;5$OSD*4p5+TbHRJQM9!4MiB0iw^Azw+@_F}C+$S`}oO(t7i0Ej2yfc`0-?#!7fN<3`{19t^Cm3M_5VWJ_<*~@9QDT z|DlI)!jyoCyM)S9RR_UIA&FTDP(~z}0%5V@6D)w>4uX#meio0P2o3;h>tQB3%MAm; z@=5L`OX5nV_-(S^C;MY^G_*X;$lEDNVS5CYCokw0CN1*EIfS;}V;S5z%`QD+Q}Vi` zy4b9KG9r;F1cv~vJt>R1ATNgqb!iwcqGd4C_@dpd$Xb%<6eaeGy7ZzXQjd-$X?uj3 zyMZZ4Rc_Xgn?Z#Nn7JHFkpSYCt*zg~-2pbM%aIE{+3?n(CO2~1GZamffk`Y@Q^F+8 zTqtn35e62!T4fG4U6%R2ZBy7STJaeVH7>MzIK7av44D~=GG%4<{;jn`%X8GoRRh^9 z2ri3>E^Qof4XsQw6@{D{I$BxVWTL4w(`?0%H*3WRKT%CKhjgTS>gxWS$J}oTU!hn9 zYRw~hzVo*BcC@;?Y7vBTp~|VlwD$kUH1+eMDkYw9sW!!EQRz*MdSPr4+8%L&lCUK7 zj*2oT;d?O?jQc}kRp-Bx6E{RgI0q$1nPwVMi7bvtNT?wO;m?EwrLMt23o8lkBN)#V zz6Z<{a4d@O%B5mu0?k>@JTeE_JX>3Y)YIl*WaGu)$C9lUCu3_+Sko{h0?8Dr2UrSr zc@ae}St(1|DKo^Jx0&sh_5arnMrJKaS)(O)L{G&?Vd+H(o}RSUvhvH4_Lk9XCNb|q z)1JC;R*<}$pfod9BnK5uCl$rY6IG`j+OV^2M)Pzdwr9h%eH;*<06ILD7nYhbA4bvUp}_!{Gc8zdhwU=6inN$2ptgZLL_q-t0xhGN#I#rQ?x1vM4+R#7v>Rd~oQ^!120@xder5aW8d z@d_6{cvIBlD2LBMPbc%JrfuqTy9qu1Z<8t!k`Ps~4RZgIFD-2HSsW`MK?~n=BsO zT1fjDN;0;RsU!>4AcM8jp`FcccgdNYzvJY;*~Guc69S6^i=qI#2ffg$YfsYZEo(?# zqpK#vLe`wJ+YuW~OU2!hRbN>Xon7Gx0yl78Ho{pGu?qOpHSt{143bObdqv00XPPYVLAU%9>l$o-qiZKHH!8TUwjGmFT7$~0b*`w+;; zL)V2|6(MqLpjcpFRn&cQkrt^oDR8)Ql2Gw*NFE9=0`_~OA}1s*OmQen$mKSWzj855 zs>bO1cgXK4{O6!*)L&(wm$T;_W(5udB|aQ^3efMd4K=CoBGeGAl_+J?s8OTqd8NByh?XfOR^YxW1%&L z5zOLBu`0yylXyXbkd957Yy}^yuuoZxrdNA<#dlUhkS$5}~%Bkj>Kk+i-)r$O2@Rm6Rw5k(qg^jCbTZqFHwq^9>^cqizCGod+VETmruTPiWG~ZT5>= ze;N0;RL@-Q71adS?V0WVah$^meeJYgbovX|-|{_EDscR2hqOLS?+3MhRD1NdqQ)c^7O9d0t4Zzjz`E>*{in>ZKxEw+YPw3B^; zPZUF%tn3;{`SDizpVA(;yd(<~SeymB4W;OrmZ3nu!F}yP|FYNrv_`bC$8B$)VK?k; ztry;q?xH&JcSzy?iDf^{9IO$zSLIAjWYl+xlVjA}f|nv?77-CPYVo#L*AA&h7`(hj z)-uU<^yw>A;s|qx3JH(-DbU+iua5zm79BRX!C<$9;SlwP~Fh) z9vG)ouQIpMHh(S1K-5;`)imQW>Y!@Wtg8>a!%Eb+W)?*1l=GgPSI?7;oWW2D><>v? zXu}HH+}|g~r9SM@CP!Y~znc&wFc3wXBy0M&@ouP%j|E$msy2|KMTSWaMX8xfs!mh4 zHHX4evWnqub%J0wWEm^+pmudEsg%f*E*mUmxZh~Gh*(fPhYB!qW){i*A*Ttsn3qW1 z$*vB4=J=|zGP6P?=EQD=+!yv?o62?Fz?84v(i!b&W*AK-_*u!PCC8J-FQb@n+icjtA!ve5EZ-K>B=mRl#;HV#- zw65Q??Hq@C(21l=f-%@7VQY)Ps>TTtP=E${8TS?8=Zo85UAU`eB8hLU5pee=6X98I z*DgmiQ``vy)QwY$sLkF1$-AQ$1OPm5ygv%89dWX7*w*J3j}GHfu5Bbt8|6ueY~Nl~ zSv=!CZa@}+3RM|Mu#0CkMy!}(&oRBkiqa@`Ppkzmuu>3q1}OSj5p1?TXtseNnVWdv zTgI~-E1l#Vo3Vf|3?w*vP@oH4gSNkV5o$0w4YE6B-7b_3Y(yMj$t|z{-2htGqM**M z?+w^5e8y`9i<&`)Em-PzEGr^FOKM2#psUm?ZU`l&^cquVGPXelQO9N^|7A0zb#yek zvhD+q+)DdpI1G>cXLHL0?|bGi9qEWgVQEHD`9#(yGc!UlOC@c#XYm7{dVYY}^%Fpc~nT`vz6d97CYvXk(9At?v^)%pf87G||3!oEKjiNk?c@B2&u z5@F18y_S@%tF^xzhv5+)#|qDsq@>Re4 zbd__HSD*MeQ)*nPN@;HUc=iO*zIgNG7kNNiTnJf4WhIxwv~+VA25P&6tqs4YG!65t za^|yZQ$dz>j8IgjRhtMANR}+ROc+KPzv2`_3IH#nf!jkUR$9t|V~v2s}shyy`4)IsV!(4gPZ zLs!E-K>o@Yc$?&sx*iS++UX6247unmF7U?UNVT0SLW$VjD_$MAl%d0P-b8sq!1GFM zT0qkIl6^%E?ZaCu|6%}o$L(8}jcu{7k76`qJ}eiOMW_;BX2b57-EY>!hW|8IUcmvN zI96+Is+d(etW$CmB4JEQ(iip(+E7W_BJ1oX5EiHzO2Gnk!6K?8vS}Y_xS|$FP^JxF zkNy3|ajr3ci*Gdz>5+*cao~YkY%J+cfx-+LAW4D=5Mr(ac)bW0qa-RLNjK@+SUkMz zP1gboDRxi`!Z5QQmve~DpcZq!jS~hpH-jzWG8Kt5){Sj|Gz`l4T-Tj*f@|`g_p7zBe%0uv~x4cn*Avgd*muV5u`QzjqtcRXBC0QvU zNZqVd4KGQpt+uI;G()k1W8#qn;z7pqfCRumnxbTAS@pPK6l_=1RNt7IYc7INy3I2F zgf+UuFcE-lbyrz?be-ndJ7@+2Qd{Eda{O-2S>uP^19V3gIN<7#{hz4~RZVKJ&O9WtSaOPCi(FUJbn-W!7%T{S@AST?v{6Rxfdr;FojS<*YZIVP5))S`!%cb|c3Cqyf? zGf^d+zackX9PwaNkD*vES2p(fJglC}Z!theBWA4H{-J-jySqHSBG<_4xLG52{%g355U5&+AvR!@*3bMwU1`g2y z8x$?l8hRKjo@=T5a}L_$QaF!q`q=xyJu?9q#Nx^cqAYOR&N-s2PN{Ib`BJ^b;>krJ z0n*};T2}{7H_R|fdIdFCc-pZFY7yYFQy|mBksd*iU-PLLl?|KvT*JB z(ojT?C#!i*(Gr@00u0ekXwzy0es@`~c3JK@Y!duZS#3wmwYSF4GkF5BMe@5OXbD-t zJb_5SUd(_n^}2lUnkTMneb{V>J;;NI`zmJ8OW-@I9Kd*S^@3S0Itk;Ox{Qg&dgSRN zpE-2lWz~jEx9rq*@l4=>5ZjkTeq>419u-fWlLdiY3om^p#%!K z7CH$mXL=oRW>0B|abf6AE4Tf`t z9m0u8H1JsV&ZWQPIzI40ioM9Ci>Qm%ni03BvtBv?4Qw3f3kPL{G-oqvM}Z;RGytp36)6Rc>HIB?P(%+2$0VJqdL6CCYrZ|FdRbSCh&BL38`^8#oFgUqnuBNg23 z1(<<_M=OY~ps>N2s=&2?`DY;g9@(V6`T9Rh58*YIKyT+@={O#Yo7dwv(#JFPcR@qFtD=RH&JNu9Q@ERKQ9U#srCYMnGe+c-$Z zt35S z85;Dw+*R6vxy)@%j?zqGgAm4A(z>ygCn$h*$W%_fbU3qgth%qLO0RM+d2-D#-@_zL zu0VoQU9b7vCkjF!Ti-P7Mo}K2_hO*cBj^TErV(GZkwkS_ieUfBHhX|)Dq=2;&@4Rw z)NIU=0Nj^iH7O7eOtq21bdRtSL@gtaV}Y&RJX%YS8wyKJ6)*rm1^=3B6j8WbFpQf^ zTX`90L8Aoljy-0^(P&D`MER21$^I+{KpYw+dKXKEypnfP9@Tg=D`+~mm7}OMD zdfi;|HSSY=@FMWJBXGkU-)@4qcS=xIGW4>gpat!C;0N)PqDs=8&t0Oh>gExK0(gLW zlAz>)f}xdNV?g_GyK8-=YS_3@RvJ%Cx_ni`9AO09X|>j%p|M#2az6~BqxeSrPk{t3Xbjg?7)gorESk9WNhpMqdfS9xz&?V z(AdPxB{|gFp_)K}+HSHhD{FEkss&Cw)F$)CoK1@~kcQZ!Cu%Tz3^cV8;M@6rd}I@n zfzk%Y7sR?9@$H+>$$);c{R!{gY3)upPgWX#&4Ng7zFs{5fmDY`RP+luxCM; zkq4LOhRsncA^B=;_sYQl8UZd{x{)X#D6}~Vp+^CRi`G?$hH0wAvLXzqG$c3BUN@T7 zx#y8i>=KK5!;RJyTjUeanKarR6p}8=awJY?Y|i$~jDGq@19{bq0boVwbkr;fb_CPS zB)}Z%?ZBEm8}MCOj8-th^pc?xu`Hyq&L|F#Vbo3D$RrJh5KtUA*@+taJ)L$Jd246` z)k@PEdT3sJryEHLEUk-nb49VJg|`PR!JYlGlyi~Cw;7Tx^U-XqumZlPprKQXrhFIr z*07yvGFIRnu|+F}Q<$wFSKvaGu=YH4E?EJ_aB z5^8lFte-0q+aVE~dDr=(9D}Y2oX6i%gk#R@uzYB-^|YS339q?{l44`oEL7pU*6 z8kEzK_fY-7R?BgI($lV-%C0L6gT502EQUp~^))tl!>zucr;NGqR!9xE&9sbcS#m6d zN$=u7bnZ7xAo+O#pz>f&j0=%IfT)pB65~$Ak1Xb@1|2TeMlpYNCdL_?5&-tH(ljE1t|8Bv8mEXB82i&W z*gWjk*Y{;ELZZ)83@}E-R-aik1*Y;6sfALEHOJ@RQv2EgHV|8ELFG4Vlt(nli8yEq z+0KX*I=_R8J%~4_ z8ozE9Ixae9kkzf3!XjC9FV*Hxf}8w3{pZvdW-Sl{v8jBC8cfwHyS@j6NWtzK+^_TO z*l(_-X4-b;&CUDpDKQnWAAp4jx!j2XTYW@IpQLgKV-fpURgkNJZ(T8Dq+r_7fwY>O zb>k+-v@)So>87fJ;*lDS4EtNtAP;c<*ACVSryXQ~QT`;s4}k;}*o*?1C(1`i7LyPkX zkkDuTloF~|HZhYB+rbF@je5o|n?!S0niRTu{RPaG=}s94HQ#T!RS^nZ8$O~6rmXqR z^11zn6dUj@w;mjg$}7tGDhc+HS4YIjvH%Acp;vc3fdQCeIE0e)aIh6s!6L9hl)x~B z^|NGHIztX3paglob4exJPP4fdG?{;MLT3itzZT7kauHN(0IX*z_D@YqNH&<7tlMotSjLZ))q*2AZQej$h1aTA1imZCZbDmq#+qdUm8w7ZOr% zoM&a}3c4ap@m!cAn_8I?PXTyjX@7amI{X`&T~IN&j9KZJdO14}46m&P`c?{OV3ApL zA}vnQH0D%>q&)6<#JRL`*%q|LBw{m;ZWx^{0m(u-#H;?OE$2>8R#xK@Uh!OzwECX+ zg4nC&OiQ%hDW-t4Odb=hxb?nOs57Nrkj*jov<8wtsp!F|Xv;nGVd}{;gGD41W|~sw zd@|eIS8e3BY;AH#jgPPl5Y$nJ)}jh+aYK?gcNiy=4x>`pI&c1LJ|Zqsh{5 zz{2(30e?_ofSz2-t>C{I<>zFz=@|5PQ}_2}{%vv8Fo~{zp|Y7W14X%Qw``k&b+`j| zOd>f%j}_$8+vI@07Ys2bbHzG~+st?cBxy&rPsDQF_hxk2$H3dY6 zY48AC=1&d5*@1LVYiTB17ITt5Hxb1T1VQB~7bCB=7}(IQ8WyHjqFuz4v(60xvx87* z)a}zQD1>36#1dG`qs^vet8pAReX_&0L#mLOoI7PU{sR!UY)?qGU5E%aS2QB3}htCzW}* zxRZAjiLbxd6(A5%j9~Q+>W5HEvOHW+5al!4*l^-ButA zQcpJSHZ10WoD(^RVg;BrLk`mhZZ53* zLt9WROcJ$VY5T4e+f4oF`qLa-IrWd}$BuCeFH79=g@?pH^(x@)_QS$KvC3nbK4Tw76W_#?3Kz>QCIYX;a(xHDPZlH(k5G zj?xyzd%JcLD-<-i{CgeahV*>OPaWU821M;a$M6#qbnw3^gOlQtkqujYf$BZQ zaOOkV(BruMtMtzS=ma<93kVsIRXFu0qI-UTh#f#pIc|9F5^eY|RTKAdsA&!u=8&USIOT;kUU}uDx0#1iSwM`v&C0C4f2oi@H{Q zYg=e9?(9~=_ICHi4&Q=)ELPCxt z@FM0N?6e!}kg&K_$00}PFAAM<2H#n993IZIb^&g%k;4mYgc-UvFL2#MN{xgNTSN$P zCJIO52qC_4i4al}34wvBwa6#NRLO%^MkpPIhOWq@5V@=sP(lV?IH{^LYDbfjjPq8Y z?|4h2?;T?Dnv$Hi#N?YY^UIU{@s1{iQ<6^#+zIg&OSr@@r*jcA_@G9O6YAg@G&vP% zUnnhqC7=@$H{DWj-03S0Ed}Q==*G4Nb8iZ6mR22U!Fm5Ces$L@s+L;W`cv4rkbY^V zwW62s$2B5vnBS04M-E{vGE6_e%)4D(6W!WIMYSGF;@i*^m1M%J#iw7eBg?IqPaD*V^esS6v_m*HKQ13Ju zUx9`Y2oWwVVqzjA)$xNYJ|ojUFX7J|PhiOxQNYqDtg)MhB2K0ePXdV~kxUB7q@W>{P|`^EG@n>AwtSrCTOf_mJ zM|x6;@COZK+nT4JG&9;Wz*7}8nBYZwrVAo1UAW00$EvSufr!%9OZ#!I_s_EjFl<0clE!1OxOO1iK^Mh9SJ%2uhAhw@Xw|J)IQIF=(wI_pBr>wicB;)1x7_ejQd z2uW*E%tcKqfL5rdki@F#+PW#T%j%@^`=z`H@Go>7ASewcjQkmoH(u(S|tLG4#Zw{%)v{9kt+DE>o;{JCRfKSuZ> zZ?FABAGy}q)(wRnP9GzD-cGFd!+|55`XY~pAM-}%-^3U=iyMCc$8c{EvGxO%zHRQa z&+&Uggu?vH{ouvA2?PxDl_uf&FsjkeAprL(96&n7P^rPok4KK8*<3l7&MQ8_8Lm@* z*xGxOAO6HY;VWXy;s^WPPeO-41k~KkA|J%nTKiIvXx5h=U)?9ns3+H|f9ZO$5st;F ziWjSrENjoKz->}dx`PA3Ev-5|;6p&JZ=#a3!57&)-;dGPU0p`0aFHj>`*7%Jg%zi5#fXkfnY z3^PoDe)?ssF_v%hJu`VVgfg_W`3}A-Xa%Ree>yN6;iSQ0O=(j`-Lmv6KkPQq?9x4V zv^#G&-pgjW8=75x+6(F}GmVpHo(KDEzW~a{CN%fKea@Vx3)o6Fy#e;FQ!BpxfeLEe z;f%-k?6$FwO+u0xJGN|_{;5sFW~4lMQnHEMvgmHFoaXgt%7sof{b+@yVz6V!p1lbs zWV?wz^sfM4wWY1j%gm=$@m{1Q{sL2niAgo2;eeL36t44n7jWm9e6XMGP)$h*0Qnmo z)0Hjua(H73wg9y-tW0@yRA`_(NGsZ!VmiCQSW)Gqv)o2p@E&We)h9L)!8bgUfWl?y zQ&C#sRaY-}RCDa2c63`=hl5r9*2*0t`;u|9|7)o2#eAJlQ#~Ge_LRi$pOl!5GS?fm zLAQ|@G$t^Nro8`^r1s9NAXuNVGr%3~cD6Y?p+b`yw^OIQzF99xU`{WRL8U>x)jpL4 z`EW78l-jX{7a^npMfct~*8IYwH`M9(( z+gdz%xfJ>kCP9Cci&Hl2153A*?xEAdr5&*C&6785GHVGIqwJqD4tc1?exMhUff@dU z8&#;qK%SB7OZ)iP{RG36EjBJQn*M3cUmPQw6-{8%72FKdyu6K`6a#K78T8l6Nf-FZ zFLgqNSHu$c-z+8V=$__|1RF28W?9`3xBue8t*z%WC(_6Jr@6pndJd6vC~~Bm(aiV1 zLFN0D;*?-AOWT>ptw}a6i{= z+I3ir8f!8EeWaHFq|TG01{tBA0Liz#MZNgvH=#)uz%sUXs(B(*n1`m?rrp|GLom_4 zp0cHiJf5%Bd=-ZHH!p|$ml*4#E`x9O`!+TRqJ^<=bk<n^;Y6=N4DM5XB>Feb5|B10Z7e3$%9JUW}gdO3kc}*KZSqF7R1B}(d*{OFC!pa z`mgWI8Zx?)1!T9oTCilrn*2}Z5)27ej@%t5f`E*Z?s0N(oc#ZJDUxV%7zz(|>*+(U zbDMneWe;Y#v*XB}74Km0jhCI2%W_bdCq0{>~Svi1Ux z_J)Y|fjsRC71|FPv_CZK0GLq=gzm2iJz&BA>x;3~tV-Yc=P&VQ7s4;W1w!&!4tk@# z(sN8HQh*c*I!nL{_<=x)K}$vt&R7R2u9f}3pOje;Wgb*n1OsIm43$+dQr5v($%83M z5lmIeIDH_5?)x!KILV|{?R8G=tn}4(EOm8j-}Cb~i@XK&-O>{?7B}iT?#{h<>T~Jo zc;l0Ldc&zt`2Ap)EMvcyw2ZY+HSKJpb5Xn@X1k{;7)EYxZsM(QLR-Vvy`0OD^Atn zg|_oF!QJKe5`9_#GCGK`eadL#V-ZaM-GBQZIse1O*hapem0RS+PliC2xoR|_Yepl_ zyv&A?L&Bv~*0yR78Y!7%x?W_s^8{^)s>3~S^~fVAI+RHzv$50wdyXB$VSwEME)XQ> zEj?|=apQ}mI2_~MyNyfZ{i}tC=!XxiNAYFfanjt$qr*wH``NR+OT1HA&?gO-Du-Fp zAlK+*MQ^a59S#PzXby@&IT{LdzaP5Xd3Z%BRCPw{tJrSE(7DS&mKS2z@1WXzSnv1a ztUhr5ANMCtIWpLU^!5k%iUYy*?sBTwYc_JRb5Oyy`jdx!J2ESJ!!i188T+d+&jJ7mxV-jT5s-8 zsO!2L*WEF9)ZM!slcK^!0bICYXu4Y&$*IOqXsan}#Ngf>IFq)N zYlih=(sz|ASE*X9dPr#4iEh=R+!hj%QPD9Rb7X@r0DS9EyoB)ub}kWilI`crQV z8cHccS<0bYYCn9&nP#44)+Nq1J9{IMkqZ*K`>Vh8XLGYQUsgNH>T-ZULHY=O?c$D+ zqQpp$cx|QGTor7$Ep4zL=il+8-g)nXPwu(zp+^WKo_Ok+=U#aEU9TkEQCmW~u=K*v zE}D)$th)E5)3?7H7K4Wjoo3o4OgC&vbIdu{lINah-lfbZA(2Sgv{HY6)wlkVvV*t- zl1(W=s_YZXkJZl*)f$a9abWQiS!um4yB&1aO;3H$6PHLrG7rOiT&eI!Jzx5mTl%=$ z`h+{RRIkp>g%Z7{7xda*)9ZR$Z|O7b*#X_B5A~78^wGxku_lH&-XtbFT4@T+$zXIq zxDu!4Gc0N8OWO4o!{=CZ$@P{q&bf@G)LYFo*D|N6x1M>)%UWu^e3rSFy|jA8tn(~q z>GjGb&b!=Y)Z5Iql;tgRSlij>TmG`p{69OiRU3-_iML)i(|#MVYP8j>Lnzxvs?psl zs6phu!bM)aQITKPj$&+pdE1^U)i(j#pq;=0dj1%I#Pz!;dx%Nu{?g0f<61mFm0yt9 z*O|kiXIj7-J+LpxH4mn`1O?cxUe}P^*o$mt9WD zwbtI1W_mlRWajhki?xh6`IB>VI*&P_Q#${L?8QgF=ds7x^T7u-|0BCnmMP1Y-5|S5 z_K55`N}~xhm6p>=+D?0Xl66^DcGewPN?)EotmOG6FUr0$J2U&%?3etp{-pR}@z3Hv zUq=#7CpNs1xbZ#rr9`7%0XYvrmfCD*IpvjFdzYJTBe8hWdH4C62beLUGY#j~$ezgj z;Cbhg$S#*%9XuS4rEh6jur;`JqR5xE>4g)C@v$nb8mQV4wj_@vAGu$a%*4}rs}P1? z@BW!-tTyETNBRN32>_nV22T$Jz|%DuH}g7E|5niM|C)1$nO^xh+QM~m&Z8An6g+x zK{o)bE#`i~7k`_}EVdM^S3bDv8Yo`G@cR9Jd5TR=x$qvYXxnyY3%kFmja(dE+xFTQ z+Mj!ZZrp=CnC4izdd(-I$@T27QRZK8jSMk_qzssnvEs#^6L$$%vfNggAt17_!Jr+M zd1kWEF_t%LZlwR*R7}J41X7|y%;OVDidOB*^oT9-xCgibT86CMB=TnZ_!OYJf3y z8eNBRb(xshgha+C)YfU!I%R4nt;%G1db8@WGNWbbtjJ(pgSKSXX=hjL?wVa)HLL;) zQW5wnGdGo`nq9BCDa`4tzmxkXSWr5pC7RR;(>rrKhBACcmk}@=`e^jniIc{U95H#q zm~jeJcWnh$h*!t@!-7jz$ars5sMFO(`Vm!w>i zaZAoQiNt)w=VfrYhL*2y>H3#xKv@QstzQ|2S7>C#sw+`bsSy?FNNIkEg{du0V@c;N zO>0pDx^mf?)3z?!-lfJ5YjhgmH&)-hZg;m^-E6k8UhkD&?X}+Mg|OCIWurv^bhP|$ z+R>wrJ_`ODlVM&1@Z#~z$Xde7T%rA+gi)DLm>inT)D^{8>C6{|$i`pQxtM59?gRaT zu$N}`-3RcOG+2t?4b;2Kya#U+X9er$_@D4#O9WRcKg0vzbj}_LbzagsonYJbKrsD^ z+In}zH^bjmNmVJ$5G!5n@N>hQ-!8$IPo!41XAd#DX@WoG-J!0(A?QR@2RGoJ!?s99 zVe1Hw^FYkDO7P}TpDkXs<5+Azrf#y$|Fmrrv`IuA{ESn)_xs|lA8h*jwtTm>-#;xs z6As=oxZ9uMyGq#YI3KxyWTP*Cmhh24uI+ z-kZkzkPn2ySaHh^>a~*rx&Di;7XFfM4(aLz%*|@fx3lXhK6~M0^Dtkiade{^2%33+ zl~Ah?P<i}UqjQ)Fm}x`vg*yM#HafShyS=^cxtuF0zR<+_^y?7+7C#@ z_%`u__sq)btN1RL)yf)h&*8yk`K`e0y`yAxi1?*_S4YuQzTlZ}D^4~#gv$t1o6TcU z2O99<+jL&r(0TB%AB~RAfCqM937sbPcVAE3D&Z5!D~1t`+9IJuFExpN{pnMwY=rKl zXhHS;y8I-ttj(MVS2MNxc>@TagtOPnN&lV_N&LJnR6X>6n~d=cOlNxg7}RL3DW@I& z7i%q_x?cXq%_@SyPO^fgbSNXdCc++AHPpSajTaS46|H7PrQbJ46LmPxRuWf5wlJej zCRrwn_3)XR>8e<+hy6vYQ*aO&o3%u;aNWd#jK$Ij$S4k;P&7d*tnoL=cagD6&;M#N`mobcE3LT_Pm|VlCyDa{IsB4J^#$@~4Ew9Y^*e#B# z0g5=#O%=1IGmTmOdf2u&liKQ$T`XG9xfPZX^e~^rtfz63ZG%fV26#c?9dq3dU$k95 zWAWghSjd$0YRSYIrpf6C<98y%cD-z8yj(xGVkgHq&(e9<9fn)_4(<6bZzKfASnMj> zENqcUvkUi2kH6E9CJoU%R-?jp`)fGiwlWd{IaX6nQ5}=g+ADXuL4-Aumd&P8rVVDj zYuMIk;>t1~n0H*tSIs-VFFqw7y-!fvLd7i<4w!u_I{QF6TFouK&%MoT^Z_x)hkeZ= zB`1y3UD34oKdWs+QAc@MF;h!LAK?UiM<;m%BHr%#p5=LHp7Bs|hFA#ORgo>m?tE;v zk;7WKpS+U6WL0;)Pbs#8(E@zu-Th*x<^*1l`=U{Z8?Y0{+S4qUJ((Ml&K0VP_egpJ zr?>lai5Tun{6V$zvxf6%@YuJ~$HL1WNIZ7r{OG#VoB-AUDg4pr^}U8UH%MbQflJQ2 z3}WLej!|JL2ZmJ4TmZ}pVUQsoz;oDqLgKkk@%-=^9{%_&i)=neLQ^Z`G%RJ zcweSIV8bcBxduA4?UUR6ogg>zFzsE6HhKD=TQz6t&Y#e3ewEvJ7~%# z67SyGhgMa&+|vXuWg_mj=u|)Y5i)XAr7(SB#usBGY$$A+>RZ3Dmj_(R$?d1b$eIUl zc=&HFozyA*)QdDrmCt>@nW__vRJ5a|#j(82%1s&H;~>I`wVQJEdwsaMP{c9v5;`0U zbay@dvmw4v$uXCna=}M}WhprwCvx_R3(COdcLBZ*<(|X-jVJaz+wLSV&lbbGd`{<_ z@6PF*Z7^WK2ID|5$p$AJaKHg;=lgZfY>?1}|M%Rhp=Ww(s;jH3tE;QiLMS057&i?m zudA-9&3b*cmXPn(5%R#JbyKHI4_x@8ozPn{3H`3OZu-p1xL35F5|aBFA-+%4&#GuS z(U_e~NYY-s`%cFDmJhaN5W)&TwSUU=9P`|#`)?zJevJ1e(`Qu7SaD|d7lcUVfU)-F ztt;N^|J8uZs|oQq*txQGAh7L_jPwry|JJV7!4-J=19t|Vo?X3bI(u?%UrxxpOhRsM z=>q=Bw|1rw>GE3%{ngmr(YiG9qf>7H|8C%0y8-ZAseKmj=i@!8d->4n-=ePue-Ro& zeBSHrZ*Of}oANm!-bUpA)$-QWDHWdG}m{=uPdfBIlP zA!Roa5_$8AfsPg3+Vz(MzX|xd=c#=8Q=04WN~kOoKRgNhiCjTuHrZzqd2RZQC~?eCdM;N<*kyI8wt6Q zBQp=S4-X@e1YZye^d_^reV|Xq-(cJ7e(_wPJXd#j4e?Y0S1;~);7@vuye7czw{lVr zr~>D4fh_@p5++C4m3M!nW+WK7>Q^lt>L!!$eJR2P2tZub)jfnV6CR|?1dP&1JUI?v zG)jq6Xb+86@s|)cDsc%<8n4EA9=sMkArG`7)HorTgmKWnBe5i%SV<*mCi6%q86X#u4diz60C|SILbihrCzmKnrNooS>~%Z` z2%aX3QYi2gvO6s1<<*}T+h zJjV^k#7nKhbA@D4D*!|Tru^Yem4Tue!9?T1YhnXg2c0yK98!qVK1TjdZM2?FrWev1 z=sol)`ZJyeEbR=~reU&69 z??`?(r6@Hh^}=7}GYl=05F;^>B62r*f;>wLX(OEqe(t7E(i1Ek{A^(#OGMJD{G>?v zDnIMM&)vo#W4JL|<)={aGh|$6d>H&ZFZc-+{LGKPUhos(#?R8EC4!%Kz)vCgSqXl) zr6BYfMU2k-5004q6iHFy^2_o+>4o*HW zynmI~HQEnRqZ>f*5o(51X0bVJB|9Jb@*(?}?PmvhUhEM2f`R(zKXwvdph?pG(nF)a z0CuMm9Cti#*pO#6~~aL{`bpXASHQ_5!<>UBEh77prIYvr@L0m9R!u#>&~F z>>>6Dt7g}L`*0FL;z%ONM@uUvWu%ErA=AigGKVZ8!(uatLX*M z<11J&bm&C2acF zVxhhy1&zOu1`!(#AQNc_DWbuo6n#qx4I`6auNq*>Dq$lUX%eY{9WJLSq#1T;Dy&fp z%_cLbiA<+CWG2lev#6QOrTJt&wUK$$N*2;WaxR@rR-k7cqEpElI+L77XOp#b7P)}V zCF{^bUqt7V3+X&^1#Kgj(^hgBT|#cBE6FB0NUous4his(F$&Iw1+(cK9o9Vga2HHm+ zq?eKh=q2PKdKr0`UXC`siVd(KHp~Xuz3eaS9(EV|Guy{a$0`zw2# zJ%-l!1ld78M(MssXQHR!G>Mv^M@?u4OX&)FKD~}m#0^-m(eTJYqi&9UVrks!|MUBXS|Mjo%Rm)HhRzW zZuP#}`)2QZydU>|!F#j!ZtqXLzx4ji$IB!PQPA%tNwodQ~Is?z4{~illnh=^}gZ0NxmlEa^EK3IlfDMSNNXi zdxh^t-#`04?)!r8X5SBdkNSS&J7VxMgc#xtS%yZ#EJK@NxnZ^8Qp2ANcNiWpJY#s- zu+6a7FWArMm+4pFSM4{|Z-L)!et-3Q+V5q*oqqfLj{BYR8}aw@kMK|S&-E|yZ}6Y# z-|D~Ie~tg;{u}-O9N-(!6mW6Cbpf{p{59a|fR_W#1Xcu24!kY!{lLS4UkCmYBn9~e z#RX*q*@CKqrUcCo>IxbRx+v({phH1l1?z(s1a}7y1+NQUAAD=@o5Ak}?+-o^{9~{j z;u8`Uk{FT`QX0}2GApDlQgXG~$7XXChvS*cRy@86BAxX^AY0oD_L$w>n3|Y{F+DNEF&D?IkJ%LSV9awdZ^pbEb2#Sfm|tS0Sijh)*wk1{ zY-Mb7?7Y}zu`6RQiM;_H!y~aT#%_t-6MHE3t2imn5SJ5I6jvKJEv_}LH}0~yKgHb< z_dwhaadxA(F%&+I*;s09G|n=%83&9P8m}?lV!YS*1U#KB#y!SE#;=U03{~7;w{QL2T1FAY z(r2f)r|-=O&B)8>$#^bfccwmbUgnz2{aI;Q%d-BG_4ll!*>Tyn?5^yGvp44i=FG@h znA4flpR+pW;+$)8Zp^te=dU?WUe9(N-qPJvO`Yq2`-mx6di^yxt zo152_*PpjKZ$sYgdC%s(k+&=FP~Ok^zWLSp=jUIYe@p&j`Txj&CI6lLkMob`|Bx?R z_10i(v^B|EYwfZA*}BJi-1?g>!d7VOv)yld&i0P&ecR!J_=4<$mV)^OLj@ZO?kaeq z;KhRN1$zoUDfBChE-WalC_Ja|`J(uuTZ$ekdTL_k#D^wsF3vB$x%f;;L&@rr`%9iF z*;?vXT2p#!>8Y~(va8CDmZz1slwV)|V!2!qUC~rARB>&^Z57W{?5g;*l2nFNW>nT! zc2r(gxx4aMl}}Z4)o|4dReP(xtkzd2R$pI}QBzhky{4r(3q>SokkSoc8P-|IfA`?g-HkElnEWe_{Rl`rGRtuHRn&bwg6a!iM37 z>l$8Y_@d!-qoy&aF|{$Tv7)h|aa!Zt#@5E3#&a9jG+x|zb>qgy+Zyj_d|3Eh7PgF! z6Et3U`^@7JHBL#I$0cf<5xvJsHIClOBU_DYh*k5e8uuWPnnP+_OU#xog*q{e+|f|Rbt4a5rnQsK>?1hQjlJb)yy*VK3fiDvgJarh?Q z>~=LyiJomx<8J(;*AHc@Rd^8S%u?gQB%Nid@euUXYPm2o5KH%~@G!(*Qsd#oK%Y?K z5u_MChu{-FkCQiyJ;ULvDDY^P3^DeMM9;3kV?i@PjmMEt_*)9x2p{aE8jpvEyH|}T zxRo&xUdS6NJPAJBLux!3Udf$mJOyblQ{$=dT!z$mnwxwkz*Ff};py-P=cw@vcsR{! zJQE&{gXb*J&r{*qpqZq`b3i9rjhn!mw;Inyj9?7hOIk@gIfvB1BOii4+X`4epi7<4 z>7;`!Cq2&h$#`Fi_hCR=5br{aQyGAd--EYq&~Z_7!Diq~59t%%Rsg>bR5&FEeV)c0 z-V8nlkVh-1J8-H1Q_}Up1LvvFhPcXPBn{w&r|&@-T|7BTIQskeP)E+=e|49|Xlkx< zkA}|xKW$El8Od6dVgRKwVocNnZo3g1RBOT^O(Rlp`L+OWSd`z05lOXpYeVTeFhb#J zxV$>Z8c^u^w_jUPQ~k(~=iCm;T#`o6ap!?kTOoMiSUs30`ESy+0<#yRydF`v14us% zDl5k1)PVXt7hiapc+N|a*ATdvjWX zh09EnfY2g z57Ibp_yOP4fLVz&wg`2B=QzP*G)#Vlztgqy=Z?TGMtUCn#|bu)DD?pT&GJD_ktqy&7J&l#Qd)YW&P9BgKJs^K8^~>M#=YJd6 z2>AF{p%H%k|AQc1PK=-%$0iWVxWPTobdtf+Nbdh4VD7Spm67mqLjm|v1KEXH>3?gFhCtP_t@^(HeAe;YbkdJYC(mu$t zQ65nOv0^4Q&K1DhaS}0JU~4hcS&aZ+Ks>8qTdGMFD}){VcVRxhj~B*CLl2Q@>Js!}bp2pm0`-Ww@wl_(@8Fr22YfpD zLB5!C&2Ry zwh;ZZKUvBq!HzE^Ch0t~;C~qy*2NKg5ljgA2*C&?2$K*lL&#D?J-rrn@;UUhmFO|c z9z>U8ZFUVwq}O3qzlLOCbs+}vIN+@S-g4kg1Ku3q)d8;?-&O)|0C;VPFD0vF4SP%e znmr|dEtQfv>?EFR$sB0|>6UV^)^a!cGmir#~jgZT(|kPyVf zfVUEO1Hfwm-aOE+2VM`ptp?s|;I$*(fps1t!XsFjcv3z{)F(^8`)AOt&*VSo8Sr^V z{*}Cmm5~W3Q$Cr^)}UNN^0QcXS*YS95gS%G?nk=&zb(umclLEF9&yQpo?^E#JjQ1&!QxUC^KSG(Z>9G7RMIF&O zc;=HPnlFDvSL6F?_#$&5|GDz#ygW3A2Xa2bGV&zW`kurp&y84@x)F0L5}p$3rWXF} z0|?-oM)5!f5!$epHi*zpH^}d?&7@FT4L##wCAn0Bk0{+tro%_eV9Uvc46Aco2ic8e ztI<%t!`DF%qGK0JY zw3C@krfIT3*Nd!R-=N+7g#1sEbFrUef}<_5gBTeStc)sw&j?~Oi!<=|dk}6%xLFO4 z;K^}jp)RpHEN@5HjqovGIS3OG((!%*&wJg%6NtOh=BvNu2-t}sAH(woCCDGpD)93s zgnyEU$*Wl9szTtaUG-SWY9{w!CGB>45mvgcM+igS2aq>KYN#Rpg85DSg<|$l%dY%C zTo+RV^>n*@sV~*w3jZ&zV645mE^ms9+`}ZuZ=4IOvHXhRE4Aunq(Ra;8sNMFsmK4} zA~X^!zYka`^uM^+6~iSE$@uMV{%*L(rLkIc0HS z75ygIQgNZbxrH|TAFe6bji6rOf~UNcUQVZIBn{ILjaH*!T1GV<8p^!r0_?gdqNVH_ zdNJRbf_+3&X$AIU%*1`+e|M2<#=Wj3chFw!r??#J|I4s53q6GKsJ)6 z&{rWy41LgjbQ0F}@273pGk`dDh-qN++R?`>Ri4;Ycs=dJE{Aov)|2(v&C!8P8Lu5ukj+U zB_d&`%m3t}SJLb04di+HCweWst((bTvAf|C@+|oWxBuD_?582xMC`5PJCo|M$LckN zWvGka5w;-kJ|+`h2;-gzRxv2{Z1`ej!;kpeA0vOM^UGWvlW2d3`khS5m|3vYzMn=M zPfc&CImiABdG=d*#*)g(ax!`Ncwl&Ta+O?8UiscP)|gc+Pa#{sj0g%#t&-0nOHZ9D z&dkORRW%naa`C`^5KnODZNHV|PVn}ep|Q$=wU6{V2WG(1O*y%w^6V|S9h z19+ubBlbaZF}YJu?CUUlcWLBw`-6}|`}~*f`(!)0`#_fcBwDji>wETZp-HBa-((%6 zaeZ;5Y{PD#%Toj7QtSgQiinqM!T+E13~M<|yGe?@>({HZ8}d z=aGF+kNhf;{eS=J8(*^V*`sHo$vrQ`=}XCLFCUMcL_T}v=T9ZF`|aaD)sXLZC;0wO zuEln?G;-Cik>7truCnXD_rz|@{ohQ+j4zW46G;So_m0Gdo7?e>cTVh_b(tl$;i3 ze=F&aQg8d_JkRn_`e=0N+FO#e!~eP^c6L}Gu}6dYu=zh?>#wAtS)h@1AQeQ$w( z_Wgc26G!a(OF!3CE%$Z<}w||urG$+FT^$$B%#oNEGh@14g z{hOSn(KYr{6DAb>!S5@?ea#>Cp9(@60_;E46okBI|1HbgH`4xF&hpd`?Z4#(_9oeX ztGFQ0-+tzFTcN@J$Is1423aa-m|~Z;rL_wZWUr40l6+(@OL9V#>@~4=qDJbgq)UFYYON0+;BNPFkq@(PLC~Z@sl%WE=xQuXD;lmlI5(jNprrJb7tgD z`bEwSt*gboDy=L*&Yc|E{D)lNX({^)@6~4*xjE3_p@5!?R zbrT}x1^RD8&&Z3|vY-TcamcAcqufzFbMlY!z*jXfS@Ph1pRNz&Azev`Rvtc~DNT@9 zo+-@rlUGVb7K6Mp5qs3-RiTEY0C`ndjPYmrf~ZsBTKU58JwU!PI3oF{ ztHQq3dR?^|8h&;0*CD~{Pn9%BueY00POp#uJ%nBtSDE<34QHy2F*j5W`Ru&Kw9NnW z+vJcbp7;JSGb-j$pPm@q6Q9otNqpklSs^h`ovgJ7J@cBr>9@bV;oE%rA79&K{XfpM z_{BZ9)BIEZ^E)j+`1FlYCPdVka2qh)f)hsWps zmhs_wSnG8PW&G3eZ+rohyDxwfE4;|beG2-S-(~rN%l8J zEetZRd0~ez`MevF4(>S0Hw05`7cCR5osodo$ZG&O{>sJ3#PP=2h0ouVvRDQcNA8F3um z0DMNvB-}AdlL^jAfHFiV`YH5h=s)$29uzxT1F@?#n1lc?jD(Mq!t?)}Lic}8q5Tgj zG+f9iOUS6Q{QHtbw6^vR(OK=SgB^5gd;9Vgv~p=*|8iQ~Indfp&AmNctuzy7OL}RF zxEsYiQrv_4hL;aeL;t|iKB`@T7fJ?u`Z~$)gM+4A@;&Zmasqb?If#26*@JsN*^0ZB zyn?%p{2h1r=Yzv-gXI3f;T41At|8DNd`C4!FU{{k;vPV_w~+=wgovdg7A|5bh=qw* zGGd`3mV{V{h{0#VPF|ii0kI$vi$^R_P*v{y#00}GlV}0sqihOKf!}?^T`%t5;%>xU za%cfCxU6~a&OH?!_tF51!<~uP1kZtqg4T`dO zdP|^!rx|MFD+vz)W2i-~E=eQUT zpiI~Wdy^Y3&+8+6rPx!>cgwqInBZGKMjxk7;Jm?8^l7@s?HhQZ56}ncL-b+#2z`|9 z7WA{I83b;pw~wKJm7rhdJTbz{$S@N(h5P#$OFWHn14bF}h@V9{p2t|=Ma-kTL|(>u zlUE^~*Rf;hO*oUA$rg+muEY4?Pw=TX;w;3CD9z3E7P^VvN^e8XchEcOpXpunFWBjO z551S(NAIV9rMu|6*ztRi9-yDFDQqg6##-2PHiOM%v)F8$9hl1&vPJAdb`e|0E@qdo zOW9}aI6HyzPC?!Ka8DZ=iy20&kLN(%)mRJ1JQ-%}^mG_I zs=p$?VqQasSq3i}g4vB&%q|!)F3Y8*7@t<*Y)Lo9V}0~Ij1n)QSJP|gYxH&c0sV;X z!)bw1aay1PCkm=?TA&8|@atGJo5u#Q51Q|W=KG@G#7^(suxMOcc&LX&qoFm}H-^y? zbOYnieYi)U1WDjN9Cl8R^KA_C45)AL^dasS(!IF*(GQ4(dj#n4x5apJP2jbZMgmw9 zn~dD&vjwc3EoB|pH@%$ov3|CKoy(50W0*guz^VeL&5-GAwwNtpt&E?5=*EeIWjM9) z0sDw4^Id{lS_zIEc|Zd(mj(@lit<**ZJkmk?qBn=Y1k(4SHwyXr`YM`NXak?($GWn zFb^CLVG%h%i=cnJohCsZ*qMeFLs5E8m5?ah8Ce7z{^g~!zVLS7pifDud|IWIqS6Y) z*KCzmgy7nTal68)@pDFwe3Wk?OtEwnYXvTYGhN{q7G0o9O;FgGzD zGYIY_6WaYrIA9nn^-f ztCm_h1xI0Vd2R7rIep2g$x0a+TDb$JXw!Haz|S%AQtt;9o)4$z&;VWr$*K8V*1Vr# znD5tM-t!vF2Bd*Y7rX`g7R_jH+)EBsFJ4m4k8<(0!Q083>|H=GZszl*kdu)bQFhEw zqLrkgo;emz#lIT?=MetR%gN=F2~IT7)==c`joEaDvm*y^-^E}zaGGQv?pxe2jtGpy z0^^Xt_(WiU2b??Ej*>g5*OPcy=c{1T&ZjGJ>S7trUM#|VObgCo)Y5XyjF~aRn}YHi z(A-bMP97qAFw5~GdV+^A=X57}!VTau-f3kIDE3rX(Nx&3Y|H}k*+(<1{W1C}{fr)` zC+O$&3;HGfihd0n!tGEk*8|ur%;N~lIR|f(*=*dK*i6Xk81p6`%*2XVEDMI!@nAWu zkj1bd=81SVD`3$q5c8!TEDPuCqF4aaBA&^tERy*%55zNYek6kVVFJ*DrQ^I*I5S}0 z+=ETP>8UX0%P`--(wLcrGCkH1Jyf^XSfHg;k+0WZ>kE1u^eiPk^`v&?t?$^ZK#r+U{2DSPk);SsaPT-&q z-GTda@Dd!YiqUk;b{!h0$94G>Z)0+18|D<=!Rg-j$Zpik``CT-PuNyRUyOD;x<4lS z>EGzz=|AXmI9KxmeUbi?zD!@CucAMDgT9HAHk;`d`nFqt?ea>LUi+}K&xSoXtKWX# z)pL(i*FKP~FXZlrItf611)(n8`}bMs+2cgNwP>84>#Y9XX#sA4)Xwhrtyo7aAcfcg zSVqcWGb>3IsYAcpKpNrMG{GNOzh{EJ4>bI%*6?>@`xP;DBwWkmj|IY1tw<*)!}{b3~wr`gFi z%*#qxkMh83iH^K2d?IhmyXr|BPUk%iOMo+sq#c@hJ=R-O$Oz8vE#;*rsl5Df69MZHMYdx-Cx*PEN+%w@XF8;pKoeo_lCiFt0;`t^3%dh7;!d=T-=Y8S z;*4Y_w;@<7h84kTZ7#`yCE=$g^HD1%l8e<28!aH6Sl>7EHUNvoPa~GlQk--vBk#k8 zRfu}1rZuo=by(lqD12B8>M)PwV{M=j^Waw6gc?4B6U5DQ3QitQ#msaIoeurkOJ~4` z@1`@!hgcn$4cj;u>m~ECZmbM=YvjcXpn0$@-^M8s{kUf|gF2NlB z3EGR<{65+b8+$Gtpo4UX4#VQ|)1GVSTKJXci&LK$Va}X;n3vMauwroq=Ay3>-sZLc z&W}dV*W>O>;~d}J4sRM~`2LEOYT^51-f=m(Tlm6un3;Y)7QpU-M=6C}ug954j2_5< zbNuiOR`|1m4Ztd{l$e zncK1Iu8eGUp)F0t-UaUA@5cUtJ=g`l24^ter+eW~e+Xaqe0T|K={~w2{{KPxiSQSX z(4$!Oy8t7P>1cT~;7y3W1p8W!!+ZaO_b52GI@{5!z~{V>o+RtAcJd9*bAC&|quuN!XLrPF|!kA9|rbScv}N^HJ^68~wrA z7HquM8pn({gPXt-SrSWTDdEy<{hJEMTMd9=cA2TT<0zPt5{QWl7#=86c z?jr?vJF=RsVQblWI5B;}sBzb2>~gH*UdgUvSL2lQOBfyhOitrG^?ICB-hlJT*Rzc{ zp?o9GE#J&;!Aa0tagzCVoVmUe=R)to3DLW8M)Y3v`S)R7#}BLYu~@&-V4W%fzQvp9 zyL{ns1(GtH%l<2SfIWzFpAX|i_M_}EoFRRJJ&7~WPveC3-`L;TKiISIj`+B=5@$@G zXD^6ZqeWy1DJA9XMfLpYE9_MHW&fXB?w9VuJoX~w6zS1^$ zONp3ExC;Hlwd5N14tj}8abEfhae8+b{JP69>eaFL*lxCmy-zM@d)Wu%7WmV=cX*x{ zvEmhvS%{nAC*4RM#2C62J<$#9LwHWNV-4l6@bR|ru@>8hbMOb)LG}q|8V<7~O5di8 zYjNWH3-%>Wcz?}KvTtyb_&b~;K83U1KeC_L&+Ih&h5gEYW52UA><>1=>S3@D?4<eH+~^OR?W<5{J? ztN0ZK>U)LyRMS_Obrs87+XwplbQS$w{e2zh_*Av`473j~@9gbZ?OnCBf2g&+y`yhP zTixCYEIbDKTZgnYf;VlA04gLaRTit%EUVNks#F%M^1N%D>Y|6D%YMQ`;wpsbq?Di=yU#jWrQVLP6 z%Ar~O|~e5-c4fci`yQ$lmD%3NWMW(H)bo#B?uDzY}2b1Sqn-DFy$@?T^1 znCarTMkQ3Mmb%8lzsh$_jql7+{LWPCW2RCc9y14e`nt3;MXhLOE9}m8vFkN^X-~&M z$6(K(c6Qf5>&gzFxvr0j$ZGSnbHyk1Rh4gTfp(rC=RMD1gW0D+)U`;beh`u{>(!R7d{LXbc=1u% zyohV-_`~K?=VS+Qq5J~w?`C)efM>z2k9hGLU4ORV(eJqeN!#kyXew$IrL456&s_Cs zQJ?wBv%>MLR^L_pibD0hQhloFD=fNJwIQ{tcD&ssRPT1DB59Y3!f87MQ`!z^JI}4D zRC%jX^Quy5SE;;J<$HHH=_uJ(s_ax&>N?cyJ4PAsYHgRu!Kcf`4NnRYTD-fQ)HL1P zfOorav^|19ubynabb^H^CBG`Q*j0tP9yPxn)sFWFi@|!93G!x(O)=?K#iTEDkyf&| z*tESu8@0Vo5x}HZX?nqwwom!g=k_VjDs?zbx+wRdS|!7(DIXT5d{{B%s}wd@ zx!Ckt<*+2$Rf;KJ)T`S0WuXU=BpD^WBmDzywb_@>ssfyuv zS8PM2jkigMsjqf_5v?`X&(&1iK2|Bo3>^-R#Wz1!b8y40EL1+av|GGud&I-gGm3=4 zso-uDPzcVXcA0p1agB8QTCLDG^p7H>nm+du)mTI-!|*tWHTiB7Yn7rKob{okTQg3& zS|y#IOYQ==!GoK@&J9Xw{@^vpePjb+$bRKq>$%MAV)pu%H@y@#5Xe+nb2`w2DS2 z;#vW+`gA#Efw)t$R)06k%<-*?sLdibtKVoXwg!)BWjsZ0(CBgqSb#vRPzoa;2B#kL zSIg+vyx`FpiF8)a&c&VCd`;aOk;P~#hyu1oi3~X)LyLz5MAxabF+Uf!$l2F{Dc*$r zw^Ry$)SOoo!o=Vy{8&7N5yVsYv3Lq2h^La?W)sE`@4_E9=PCZKInOHm zUp$5J#8WuYcnS-Qr|_Qf6s8wXCI39Dl7F7HK)1GIpg()4Q;Sg4<*L)5O_Qffv4ml zqDmeDQRE?F;9kJ-6H8n$N_^0#6O`1rUXV~lSy%h@Ki=jrb?BbO{Hg3>8Z+QQkBi5Dw|1B zHj}Bs>VX$L)kL%U9qqnzb1;$h2qmPoWh`aN^o4K!p2k~_@N5Tw@ z;fTY0+J<|3JCyD#YRq@;*@0tGzF@cV@^k_i>c~(O+6n$wbU1?X-{hebuzSslZZr@s zRG*H%rM&-9;>(?J!;02{j=tWG&LQ#1PrMF@=EPAAZE(aoT%X0O>$5+9Kc@puh?+h? z1-MXx&K>R_!Wg!%tG5jV9r6ThY1=puL5Y_xP^1HnLW+Y70_4Q-6R)n%!r0YV6eDM~ z6nYIV?*TIS7cIe-D>SsWKsAH8xr&D8=32bCzAbMBO9C@DS8W58wVImYfqtbSVd6$K zC`IwjrV7Wq+CVA_Jv)}K7+N#fF{Eo980cR$yaK%xo`OR!5#^Pu#CR!`SX=*4x1gL~ zRjcLQZm+^`ew8r0n57XJ;A!&`{UkKK%}aFrJjRpan=sXQDy`9Ca-tEU7g668}b1U`m#M(M~`&YR>npI+EAvlx8tTJX1P2FU%sNXH>cT0g7 zmsm_zFp%pOH@U?N-QpHCZg#`xaR)w+JMekjBKmKOC12>S`eJi`DR6r+DYFI&no03; z1Kdj~bd#?_d6KE}&r&lxhIP5=n2G1V-!n+g!%Qpj$Y%NIz%1s_(2!uQR;NwL&(BM> zTJ!T#QmrYeDOz1hN@4=P>$KW1tu`b$Gz?gY3E3<$fxpBui`j;xsR{Xc7IR3j;~A#D zkA2$4;L#b)!xc*&8ytLWNyTupcRrxEdDY=^4>=>puX{Z3m#D#? zf!|8C`19a5@fX1F_?6=?vG7-kJpx{sO~-*oOHiVeny8~TTYOj;ebjVeN?VXrXn*LO zAlj>C`$ke(-8r2jf8QD(kKbGtX{AS5iddJ{u`T$`&q5VG-3`7S=RzFtNg6LF{yyxm zvT%HPkh$0Q^!7p25cHNb(N#pNKw;yxm4th58+;MAO*r^Eh}~Qc{7N^z zwqm!M1HMJ$;l%&M0S8|$d>3Et=~la?JLE_QnLecPand{N2Jdx)AHi8JNB))4rB3`e zv3E|udH$IDca%fOWgNM0#_GO{&UPpMF03;YsQBGdrxU&tbN>qcoKf`m(gS>7s#>ov zIq~0dqu(iA>?5`wk-TEb6bWSH;+T7u%uN*mY3 zGTzn`ljF_2ohQcI5D~G&v`sW*PG?$OHchogmk&*~pQOP(gL510-{`1U+5Frob*I_B zc}=D!i;u=Dvn;i;&6?Ccv#Ks}!sPstYQF2GK|YN&mQS(HO*~*EY^9R0Es5M-aQnjT zh1F`a7#MA<>}g15QgP?C)2FSeNo2)6HJ!K3(J*7hg2Ki%(*sfh+t+(%&ls*>a@Rm< zSzklRVr$#etEzkIlk*psHuV={|F6hR=wpP?_boUZg?c#)z6~oh3Otl^2l*@b@8cXQ z-$y)_&Q`3ty6AAdQt;oRR$gC1vadn1KG-7-$?_uV3{qmM#azm4R+vmk^0RsCsw8P* z=hZD=f7h^Po<)+1`X*yDQSd_S!Yzf}8>$Q`>! zu@r9k>MC(`|H1cgT?r{N69@fI{!E8+@Z1{0LS6U3~F+RPf)#O80p1x1bLK z&iN8{L%|n(jZ?nO*h}G}!|jHGzYDuqU^i5GaJ!+vcam#V`Z=TM@5PBfS3Pk1py2Po zTBk$bu1D?iebBrm^V$tks&==|Uhj8fwlBR6y-SksNGV;Ih{TjMq9q{s1U*pSG}B=``zWfgV19s5YQ%*MjEVIRnN z@U7V8t-#B8c_15w&K_zJGE?aAx>ewB0bYnbcw85MhRh_Qc|=rwk8eCDWUx{I#0XtSU8UbZ%Al{c*^*dW z%hE@7S4@fp9g*U9!C#Z8g)P{T#B=48esjXLZ0nGtg}eg#qORj5oejH~f_Qy1&DOVl zn9gRuWADfr)C}GDkeR+>f6qSKQActaem|Q_XNt&Y5Bh4}eo(8F@BPGXSFSrSrfHj! zZ}g@Y!g`LB>+zH7qJ7iNf|qHIdQ@yNenFmV9$G84S#(rMPn&y_`s~j;sD!`%`p6e< zwB$0LANb(3bZigynmF@tgU`cns&F`O!2_T1R*5` z1;HcbeyJp-Z7OL`(XONuDmSIhDbihQ|2$)!Nt-{1?X!ox^g2C(W^h0C{?wjNU;oB_ z+P*-ci5(I9xPJ?p@NiKa{3d`7wDM@Zhk0)DrhNO08uNS@4zluQSb6xmAA;T+<6E+ zgZQCmV>zX>b=iqYp88~iHYPJ}4BrnX#HSV4#$<-0F1crL99A@l`%q3h8q3h#r*cQe z>T+xx4$Z`_Yo^1sNn+B(uB)fE3;S8Vpr~!rZ0_64S6rGu50+-n9Ijh}XJY#^E311N zQrezbRRfQRmsaE|q_#+vTB(rESol`emU8$B(N8M)pE%)z?6{K-_rIG3J@<6S-O?R$ zrbDSkKdR6>{4d}~us@d9n!*>i!3zGHsx5CoKMLtN;Ua%0J|Fie_?z*+AGqjn>!ZMT zVI0Hl59njhO_3A+9`+@_?1Ve$q+*{C;AlHrus>0uH|Unm_1%pRd_OzA8$bB&;K!AI zG+$gRIlr#&JFxrMRUQX@9ebPn;Rfe^fl|($*zL*jb@IpfwSA_-wd~X62~KG_a?vqC z9lBX7pVrhtHzTpz)1{lCVQ>#5HE6ZaQd^K1#KZdz4W$>&y09t2&rs2EMN3R^0{vQN zZz-b}>+Ba*(I<5F{7|cZq$%i%xVp5~8x{lv=U(nzuAK`?oq8 zUeS{7>7{R4IoZAg27Y7W+)1eoMe)g*4KpW{%*lZtH~ zry4wbGRreo8smKQsWE*8Wl@QZ|IAR}u*%>X zda2;=5x+%6Neb-Fe8@D9>t9NW%>oVMzt@hsxO8I5MJ3|Roh*N{hX#b#kP6*@l$Kcre+3I4SN?Yt1X+Go!nd+ zl986|Z%E86NGhL|XS_-`ShX8jljgUY0udpn>Q z%il(y^!|-`g_OV{YvJTeI_ zV-=`h3F_RNHO=Pdp?EEo9c+L z0zDu2b;5Vk453qF^WBX7{4P4Yr%~wa!r1`c^8sI)EX{Gk-(xfJTUib`?^!rL?|A?h zJ)ff-gKp_u-`)7Y_p{Tx@q_OUeq8BC^Tqq5(fRMd9${B`9Q1k5_mdl(_k2n@cVY&U z`*9U=v8Z4ChQFv`ZaQpX2Fz6P!2*n9Dz`6Z)%wEZ%(Ui0ZEAH!iD#HW>lvLjt{S|R z92Z+$6yY15n-`NUX`(cm7spc!XZ`b;JB7b@M%9m_yu1%aIiZ*9(Ao|_FL6@SBB}m1 z{dILpo1ce;wr1E{(EHpsXAWD4K8RwMGm(xcTC8F#K03T=W!Cs6LxPv&an7myj38~> z)-?Oexp{hza{Ezu=lP%RrTgs}`;XJ@@UOG4xL{-(_!SgIJ>IG6@x4OMW8qtAo*SI& ztAhU~PImD68jHUfCo=fB?KsNE`>OyxFDY5VFrctuWTkK$MO*)pzABPgKghLz{8HvM ziBhTk3=U*XvKN&8YJbAMhNd>w*+1m%7nT*f$@z>Ktd}Av6k7VC?9tSfNt($&nCy3y z;3&#t_79gVq3QN1_K$fh6{$q&?o~^t5!{Z2Z{_nOPJCWE1^-Qqp#&VQ5xG0zyHTs- z(cg?SVlFyd`xQF7;Lq~bsN~DFK!NW-{c|auMCmptT99a?=)HBA!wuH4MfQn0dPX~P zA3dy#W49#5jx6K;y@D^w^@v(7!t*@~z74zDU2tA51^+F@U&g%u(5QL;6Zn6-_}I}o z?~m{9^Y4!D?(^@i?>hDw&bsmZI9>O7bCC|^=RVXY(&OMmnGZcqtAxDLfbTw!cLJxG z&YH&)<;AEK{C!5=R?=D%N=xRo1m}E zIed0XP=Vt43+f8=cqNDW$V0?^HspkrYeE`u-ACVx)KPW=O6ER-I)Pv1R7$4IVksjZ zmxuouX8w3CBAwgFN2F8WCN`5T;YA(wIFyP0fsqjTDczYD(_ywr(*gA=}! zG^_YIqv-F&uMl$$ROA-yWIp(7~S zw`xgYZF_(wuyUsNq>_xX^x*i|qI8>e!X)!0#myF$FNfp%CS)??$X0)u})WRg|tU|rs5HrOqp(O1>_^q3ZY@)SoY)(Mynowzq z%$#cFZ4J`3pnZEnx)``Bty{=2G(;>?apzx|PT-O|liipXomAIVRX8g*o~75Disux? zOlY*2rxjurx30}Qu4tOMcwkhjrrg%%rjmYjXzbUCD{J!ync5{G!m4 zvG8qVvI-C7oH_B|C-({c8H>M_G`Z2?dalrai#!VbQ7qUjA>Xqs7^M84EtsY@X_K&E z)_-ZiXv;|IStg9n1aMtHCi><`g3+f~i5O)=|0M^kg|Aec=VnR&6(5YRVjOar({Y(m z+uePlkNr)^{{x)g$1jSI4DiVHFB0pN=p&Q~Inj`8m_o8(e$2qePP7Nvl6AiqOt%F1 z_?9mznK(UEYsj`nPe_$Vvl}vV7E~6_FT$*`8o?)eu_;| zOf%zg5o>g7I_PoZ1(_M~aWSimcDSL8gv(QKj@}PzTaW

cTO(c^LJ{C>gAZ2X{3T~^*?vrjOK?JP~J$cd;LY^Y!0 z#bV-nd~6HTtg{Qf4Bqig`DN{eDOFFW)Mh7JV^SyOFUg%4o!^)}|GJjui5J=R1#`@Y za$9oCCoagZzhJ7ZDGfEP@CVJrFJdTOQ@g0?vG8rAdtCTd)oW7lzjD%fmwe!c4~~E9aYX=atwG@S0SqBDYY*29iKp?SONyTfnt!>kf<@#Bb~E^2xLm%R?z(%Jas0!OMH^0i7X@?82Ldy*({2XCqPC6ryNRCfvL z=gV_d>hObH(v~^=2}m3B89KLp3zvCjhMcb`-G>2ev^zS za8#+5ee_$H!ku(JEDlyIv5KJ+ElYKpv4_sRfw{M}-Z+1cgpT5h7EfLBin5~S=m62; z%51hd6MajPiw!}g`FV3oeT$h#r?sfMqP8r*XNvuhXnvOY#k?U_&(BsGqL2_;H}BhB zJiudj&pfU-*56~?*6q=GcH>s00Ghn*<%!zZLiRYc9KSo{f^Q=os$Q0H9-R1lFw5bv z5s^ZV6*@ckc!tXj`y4pW@vzg19y%=%+;v5cybKs({2+9*#t=}Z7^Fn^veY^hmQHe* zCdf=J(qqtIXax6hu`dd9zQXr$bOOq@(Xr0hAK8uh(X|&$%WlYvsylB|b$7AE!m`TJ zs=JCM8k$+=Z7iB$!Jh!7LJ_=A`48V;)-+Ar5&Bx~0R44Nr&f?tF}w-kqN!VUIaKuJoh%;ud!F_Z=kPDVHE8e|*Jfl@snO z?733Ton!)s%g5xmSR1QQ>1o-=e{lU*q~gehud{%<;*Y~}`D3NIcGM^VXB8a7ZHF%| z#;APNNF8tE*uq$)J(JUvA4xTJ=QTHX7-;;OW@~e{kKVpiOV=`=geGh5yb1&Jjh|Mi zI`IXQmKtcn1(U10N)+v`f|?8MjxU*+H~*UE*^RV*c3OSg#CTRQKR0`EgHJ<$iSY1e z;s3{&$+bR5(RvfK9y`8A(4K?Q#>C8)&eej&&TKIZmuzC(t!~}m<8EmKMuN`q_GB># zFZqE_XjSDpM%@px$1oOj47f|u><3=MsM|Iz%Q5J7=FP|a7?UDz_rX5*ez8sL?7Uw{ zs{D_6OY7W6`{QKJ$HQ}7GkP9DqrFUY1en$nmF4ba($xhtu5+UMXf!r{!-Jy-#1B$~ zT5fe(Z^o;m=Jb@lhhD(+ipT8idvvOVCD{BRDSA<%f27V!7vY=URA{JU9$n^Qjg*9c z)h7E>j{fcfq31JHd$myLIqyd|y1}=}-wQoQugP1 zu%4ch>M*$I5Y>$n%DxG)ZU3X3dQ%unl#=UmW;8?C#4t6$YwOPER|*#1bcebF0VOH zx4Lppo_E0Xsg=5-midfLt7&cv=*!TZ>&e2+lgtqlnhVowbG$r!Y||{oGcyxX>vLu; zN}OI@-8jEx~LDjiHKqOOr!+X;GVtg@(RAo7ZL)^wu4^XAPH( z8NE{k{9%-dj~B6|z}DY?fRJ{e80AFW(q!ki0D z5)bQSn}_$^YM%0F7Z3glm-=PLd?qvXZ= zY=w@<7rKId%=CBYifeBKmi+H)Nhvf)dH)}6?*SM|aU~3QbPUHGmCvLuzcfJYyh$?U%8T z5^sQ_ZgkiUBC_?zA%lc$d%-;(E*DevFF+>Ge(PSeuJFba_o3C(lW5f)w-sK2Ug7e? zt-g^PRfuL=cXs@{#FHiQc=T}T-zJ_di9emsI|N9MLFa!6Dm@PMWi2DTMau}5b#v0R z4bk86?G*FWzYQIEG;oucQtd;!p|>@fw=;!-9<{m$K4!iEPH~cJG0R(m)PkxR zp!JrJTh&HxcgLLkE59EoJfRCG?JwI!X3M1pl%II}?TP81Iz2L=rntOtEx%QqLyzIw z&xwDR@Rr2m)^h3JCPF3gc&>2qpTLO&Fh}R)^A0h;Bt4!hT>8I(-V5|H#q@YgaPc1y zN)~Fk;fJ{~aoSSCAV6;x{+&j*3kscRhoAzzYqJz;ZMa-6J#N?C#dfi>i#hS{5tVFx zxb(PPT>3u|-(};mi~^)45O0Efin0k-rcfHo$r7qT2VSbPJ3+tzh53A1*LUvsr*&ue z{b}76`#p?EOxp@s891jSI8MBd>jv`L>&}qBo`7A49Op7Cw=H>(ttZYeeurh$SZ~cq z29FazFUe0a8_(tk<#19k%)fKewBy95Yq(S%uw2Ez=>W&ZFF z(<88~IGvA|%Lib6B7}PqOH#PEJ~p?~QW7QdgN;}+!$Rx2Gx#~y5&>#a%FmtV_b^m; zu(gXr@0IdlMGFRi{&nZ%k7nMVy&4=V@@ZA@UFqs^0z4Jt`r-Iy~}BV-NvjAXgMqYc?rG+`A;pD|6t7!-kC#ze@{;SQ<_^AXo(j~bL1pK zrTH=gAQys~Kn=Nk|IY6F!uiJ8e#Nm^F0_w@+iAJbOPVv}LRhwhy}h&2Y|8rZ62Uc3 zkZ;()a1QE@$08@Y`Z-tkvt(DW#&EJLAk{eO756mDAKSF z;_=GJzU4l!S3W^&$KqzM-RB|&A+Yf_9Zsd z;qd&1g&UVNE!ec=Q-gC$ini9rUan7g+ROR0MeVFHYSe*pqq!{=YO*#bY4R%9I#Q>DR$81F~Ff*8}V3ww>UPf7>0A=-y>Y-jDMGK zmc(Pd5SPzKoHa->A3O%Q_&*W1vwehDxKet7UD@W0fMZ3vo100eM+`fYV8md|xUd8> z!pYohPh%X%t%MvNDz1dZ+F<<3)#fnA@kR+fqIGl1f=n7;1q&yI$JJ}y%#~nA&&My66 ziEeW0a_9E1w!3#6+D=|CRjL&5JFTiLRs<+}s0aR$SC`4;YK2^`hE=c=Mmqzw!qyd7 zNWjw2Z0W$VmuN(bhRZ-z@8PKGE_&1bP~@3P(tn$wv$c^Toqd%7eT<8pQJl`w+#E#E z6qK#SQu#SO@J}JYwHjSLr^Q@TOPYz>34QH>vVa;tyCgd{g;U$-^e-Ypt|y$^7&t9p zw)&sJ_D0lUGW|5!msX$QXM3@PZM)B{b`%!>!mQ7hQ8raVDrBXE&$C!cZ$2 zX(jg@Br!Cxtmf>JN@qZ^RCWqnc1Fo_hd-`FvHwoD?=(b9x(`!CC2&MyXxecObjP5O z8A;IT{^HtqGn|p|9(f4PI|2%{WI+IC{A)~>2Am0VXh~(XjwaRiE~kvtbQl~-mq0|T zBTjF#s|tO`-so@MlB)8pEWFz4@K~)0OT=04iY`wiYH@460cHN0JPe-QEnJzLz0Iuk zPfQS=>21d>bG zzk>eLVxt8s3WXi69p?)WL$6;VKx&;#MT_`4+7z{+J6JqpD}1lqr{nY7JRXJ%wwO)9 zSW}+fe+<@9KviO64D4(q0(N;IG8I@zBxzY0;LCL@uWf5x8Q{satFCE}uV@NNC8V`I zRk^GsEE6MZySQe@11oQNc5&@R_pkWovr8PY4c}VQdBb^C;q|wz#8=#+3n8cj%@LN| zVBsfLrck%t__)B(+F9m)jBKx{ubz(Ll+b3@ehWrQJk=z?@@v*kkh6va5<;zd|;SedL9Ab~B-6D&P5yVsB{k*y*oRL&|K8!U2a%ahILM?j44U7Wn|5@&0; zQ?R6FP0Z5~ty@_ocFEedG}NuB^v#bVQ^eeKr8vI6F22yab7ipAZTBun1Y4Z``O)?@ z{@{{CbZJt|6GmEHt=m%2eqapXw4+b(PJi$=0J}cyc*8wfy^AdDK!f!3Ng93VeVlx} z&~1m!wj9i&(2`F0#>0)5^UZ-x;Krr! z#3G(~LuGhD!rXF=IJT~?a)GaYTSLwApx=pZa1{1bI4m_wD;Hdg_tq|hQo-i|lv<6; z#YzTj(q*fdNRoi(UsytZdtiNzUnC5BP z)>eYePQztOn>HqbOXBsLs{KpE&dwbjm;U^wR;+}u#X&{A<)IDHCTn6-bLX`kj?|Xc zWOp#Rv9We#1dpO^0LA415s;Jy?sVAw=ue{hZL7L!^q0Q* zlP9|V?Hy11J@@XquL~0;K4@7zw9El|g!Y-X0VR+;tw_O?F0DPS!JZi^xNYhZJ)2eo z^N30;ud$>y*4Yvjbr*LwY)nR0RJ&{KZP#@)Y_1NjY-rk?jIO$^er+tUsH$mASRZT@ zo1!hA+VwSjO6+fNHf>A>msVG;NC+rlxYgTyVKtbS*G5_$;pNqlHYd6yurL;Cb%mBC zEtM`X-y%VF#m#cIZxHke%o~{3oCPH7RLF^+InrDY%q6Zjrgm^U(E5_TvGGg$M%}(9 zR<{xNP2(oqHw_!1Z^+$W-#J~^ly=UlFhF+$SU@j=)j$m^cYFrA+{nST#M-)2Xr|6$ zAke3)?%P^jz4g9TtM13w`&WkB-R`zXsKf1U5BsY0`YInAij!M+ty;BfYjWoLROOaM z3%A6$&=Ofw->^CoS=~^-CIS#UU8{<7)G4mS=-jD|&nbPC!$G-2W!vVI_8j`9)r+kk zPUj4$uymfVt+gkeO?+rCAUS>91G;C7;&|FQ<$Q@GJ(M$96SsCXG%bc>nCe2IggsH8 zu+J^oS`qd6g4K@d*7^0(>dJs67Vt-FJ!jOV`5bj&Su<~vg+GgQIcpji>$vGGd&f#0 zU`U_c32R%I1w8i9ye3bB8&1)w35BYwt8D&Ivc4)%M>$AGVCIx@dNk7B6cksqFv2jw0vNz#XM4Q?AyazsYGbqF1eHqqQy>YpV2Bb)M1s7}0pnnsLL1p4licgIz5o z%o*UhxgMKSzvV5<7d2M4NJykk#N9QtgSVh2+2v5VYkaZB`b4z8er_d~v@|XXyIZ%U zT>i@X#1-qp^Q%nO+E}!uwkp!#EV58(3|PtPWNQY`3^=9E@CirM8GaGPGsqPSAHc>fWMR<^FF zj5@=%dcUvU9(F`3m$${5su~-s8mm&lV5%k%oKw*!+mgNp5h+T!9C5R`%IQkMLxV5b zW{La34TIYs|Ge5}OIBNLuw0g6!LRFGz=D_-!>F01mso_2M_g$u=0I~J*OeZ&lUv2J zoy=d*5NW8dgdUz#^T&!Ey12EZli#k3RW;O9MOs0=P=q<~i*K>g5fGrV-crtv_n{T% zjQ4|%1bbIGJAD9jLFbAOBKbMvLvW_$xzdLbanAS%oM3mZ^id=LuP&uy$qDQHvU855 zGu9$CyOOdd-QIX{D+x#EvobDNNV(2pSJAV_`KldHty%Nbj_o+S%Mo`fVFgOH^Bw$z zJJc57Q)L|iXN}F>9!<0)gH^5iz?_b##S zYpo~P;kR^DhpOAEY!MTTviU_y22=Zfu6-;YbWVET3)>(NFF3EtKnl9=Ss&_x8-Dja zt7|uR`FW(u)8Mb&)a9p0rKkQz3jKl<+gmm@KDPH8#fzim8!zpsT2^m`>qW8Ub=JN1 z_Z)y5z~2(;V<}oW*e!6>KPLbAK$7)e@f(4odY)hGd89B!qc3P9DXj>$Ii}|u!Egd$ zYZf?dZ8zo{{{c5pDH1oVxp32xh<`z>ZdC%ff#w|@4d=(B-4|?GT`xr6o#h59qg^xH zz#7aAG|X}XNq`hCiKS)F@H_%&^<3-#NBhmN0|>Qjs04n%*PU$JSP6tkmtbk_x+-s1 zWy7jCFa+(}8bk9FX8(dpR35EpzN*L(L|3IkEK3j%&9DT@&r-f3AWDg1XXi+ zf>pp1T!i}R>0TOra5hiS2<=(-FYyG*<_nT81ZG_w7gPln$735RfG2o}E^Bt*xFD#%M+NLmYVL$`7BSc2ul6G=Ltfo)xZ<1yncRYezgPh1mSvT!xok& zXkQxxKA_?9?xs!2(9#6Z&4Hz2XV*m?m;UtTmN`5@OD9Wqwp0U8u%WSb70VOc31jJ| zbMORjIM?pDwz+T%<_SI!HSAb5uU3EQAAa&=ktewKewHT)L(9O2-~Th7K%7`nYe{Xc zvnMR|7k4#otd6csy6f!i*L5~-PK8!AG;gksuDPv#eGIyyXJF}Nu2_ouraR8|4S5uI z&Luya+c}$?+0MDJHMtBJwuU-j*#1R4#qJ0H-{GmN_~=>wKf_a~*^ce2g3JV*H~KyB znQJRb1UU9}j>yPDJ`+vKB+|+jS5;h!uTFd1DG~}?9=M7HsLUa#zObodwZHa)`pz{z zv%kBxYH7s3tijb7#iwigU={rj^x&D&kjCa!e7V~vw5&i$gUejF7W1)E2m(+ikYNG- zEAk0o#5cnyfC-tDCkWIuChZ|tFizWq^HNm}wnTl6Pw+Q^&KC2zy%CEuSQ)5ks*5@j zezz-N0+$YmP(y1gA!pDX=t0&8A_E{YFhR-Ux*5unGlm6Xm*zb3++E#BTB)cnR_$|m z`GH_6==3LrR`G(Q!DlXu_>j)NM9>`bg^~fg-xT)Ry#a5kT5fb|-L)c;j#X55K-nZz zAPMaU83%Yc0dbBU8|D0BiEuBH2nwI_$DAwCRlJ^Z6A}X$5a?DW;GEY7i~W*}vjovh z6+t9fLX-=hOtxBMzIbiaV~on}$pifV@luLPV^zJYRnQP~h1(**O0D{{itj6wElCjZ zVQx7F`L708Sg~(YfX1xC3LI#$6l9U;pQFIiz3Q(8YsqSRm6fvbB2HhEhfgV*-S)V} z(HM%>S9&9jIK9jyq02p$nIJK@CJ2VwMq z#DYx0rdceppy&n0w(j6N%5noDXisy(uUve`)s?HSsR*q*e{&VgoC>IW7u4Mhql(iY zb7qcABPQQ{(BP+(NgRib64e5+vn@;YEYROEj6mTeu*16|MNp@0*9**usD&;y^V6gAq;<-tr)wdc%3jk0Wt zosa?~Ly$WQAGVZTY$<9u_Z`2A z5uLwwo`1o{FkHKQ^EXEflcT5j@M3*C^C$9x6nS3k)5G5Z=E&EwPIrnXuajNFvaDO%Ey>~Pk$HU{ZK0-wQ| z4EcgpHg7Z@ZESCjyKBQfZ@9t=IZL7at&lU2FBmI*9g?1roy|;h!M)yEGdPBehpOvC z?w}wNt&ezODWRPXG`h=!R%ODE^looQ#F}yjVs#N$*c=NwgH;}X!l)?s82pVQicZ?S z4R#of6VSQ^00+R;py6O~HOQl1Uq&8BE~&)vdDY| zBidk-Z}ly}U3uIy+*P1+hP$$|>v#ZQb3U{baJIe_XU{L6x2E!QO@#^R=|ERaSm|5& z;5Sp7Zneg?Y`qAOG(~8k?(3oM7;6K^QCxG*#@brW3tkDP=CC$ilQ7!;VX)CQKW6s0 zS^^+Wu8-P+>sqVYs;d$$wd-OH`hYo6qxVP3W7b3)j}lf|-8EKI)E;VvbL$h%+If~# z#2c&$c|)JY{RWq&I;69!0j_$e+v*v({wo~s2PJU*TBa5~_)pnZzzsLRDepg~VBV5m zIF0;9h`9#Nc;{0HVtmDz6%cbjo5o*^IS;;ih>ZypW9CDeAFy8qi!m2NnqROnp<>L9 z5c6C1tMF{hGV~KRO{5sJ71F%Srim6~wnNOnu`!i62FAUB87JC6qAg+jb5{Q5l$EJu zvN9#DkjcyN59SE7kGYfRgtS^fcYwygf(91GnNL9b=BkJaDT?OHlq#7*sW6!3w^-ZF z0z@ffiZYc#?(wD9Ae~kBnkRTxh%-Kk6LAzlU!1=$##y1t?x8Zo49{mo=<-J%PKZ>8u07lm!UqO~s=^!Qa*VM%wh;(;ESFBUGWX+puf}NE{MB1wAYC>ZEOm$yThFg=B$&PTO z*}iUG+iJft((0|8UsDyY_o`o=Z3OIR8e?3rwoAD>ASe-UmYS8pVK++rX0oJN$jnv3 zP9j%l1Xn`Zva$B;N^ou7s0_71E!rdD7N|w*n$xvt@RZg95j8{)@hED;@{<(XU`)*c zF(=reF-f&DtwEycF{x!5sZj#~#=K$TXW%XS+o1EtU(8Uk_>;%1k@AYTEm~u)`k5(O zVXLaB3tOuy;G4DR9kd;K9JC&4Fr5G)cM3b;)TaPX(<$)8N$d5r7j_T7F4i>ENNQSA zA!VeJ6jzAVO({`zOLbToiBV$oPJM^ZVziW(n~i2~du?sI7jDYSARV4uxknmVwVJ17C>tb+s9JQ?^b~)n;`tcw(uM9`=Q{6LHJeKs@|xoc_a8n z-uzMd0r)Hb$ehpTk@6!vr+&-43ifX7K4lu{riG~AQ_wA^0#jdL*ldKiChn~sb_3*} za6HYugV|CXwXm<2qmW!MOa2>9bf?Kq;0Qj4uX(5nAay66+hD&iJ0Buyydt7W!NyKlL%7KkTToXOZ}h5PVQV+e&Qw0kR45J4RJ<&f%v4ZG^O{Mh zFHF&5aUJ2A2|80;NW>P0HqMj>%PKoH&n^$o$w6Wl(9zJhc!JcZnpK0VSL5*&B7TWX zus5OjCKUKn;FlkM2yd9RXc_ZU^a36`RLR)6ZD#B&n;AQRp97FnKe-1+-fBGZAjZv( zMI5uXI2MH{N$fzkAgm%Cvf^y(6AsW%>0@`M? zL2bLy2DA=#Ckn{Tx=Y}BDcXqkv(Fc>&+wjH#XeuCy9COpgB>e(QAWHkPS3ihgFUts z#5fXW|svwMGAnK&ztM3^$-Oxo|_GP$Rn%>-%^fttJtxd3(oYAgkQIXFoO+*M<1 zYp}ebfgXeXH1rCMg4ZRi&|7J%zEaf1GislwUz#sU0k#v*e~EtCphiplA#mh^mZ%N3 z!Yh#!VCA|{;U@r9<|8O)6ITwZg6vqcI6Oa~09+yzhsi)JCr5Q`K^EQD6hs*f>cX$t zk_x|ulF&L_5?LEUYjOX{prju`Nx*Gk%H0Vym;LoU`la8$NWV<|(KhvM8y=mwK3lj{ zh{EMVxm$|KDC1O%jbhV*SE{$rHz1vg?J2;3csn#W-iEGv+2K>RT)zaQUGuy^bT<1g zy}I(Ezx}E)^vy?}UD|m4g={%}%pZ}KGT`r_m++c|y9px)@9&&mWy^I-x$pfIl;MmF zny!Nk@JM;v||P(?h3=(p8n-%`nSJE^)q8@MUV4dcrqlktgOy^2s)X4GRA2G= z9hTbTsK6%T+XTkZw~zsL&DXM)!_X7#rguzRuv92!WzH3ewzE{JkS8xw$}v@1A=^18 z2K>bXp-PgogsNLMCjzf(myj{Ek~{=le-rUt^50?oYC>|jf@fbcfc>dr+E{(AY8?OH zl*yGqd`cby%*mBN!rI%7?q=6Az{M$0=L2oSh7T?OzVnd<*DinD@#unOd-m?#gZ9E7 zK*~a_LOVz?tbXtXaC1%|j@S@sOFkh*r@ui^$}%F)mQpN(%bm>^_qi3`f5E*6;V0yH z7n>Ey$C*IAZ$kZS?|8^tp|@xVe*{;A;|cI63w6Pi8c=69X?1p;1NGl=$t8Cb=>ecG zp!b0uC_cXiwejF**qyWNM%?$;l5&9i0iZ&_XcvKN1CSbEN)P5U5P2m}XeE#(Dn3h= z2yNyo&v+sa0F`3VV=BetqEP7rv|tOA(FSFBq2&9?A3+57I9?l8xks1@quC{o@7mNH5-{%?GbyKO=uaMIcWzP)PwScfn^W09FB(42-?t z;`FiyDa;&lhqsX1aY^`B`vVlHTk0iIXnw>QGm>QMjjJXRy7&f)TrjUNC_-h`E2|K- zq`gq!>ukEav^Fid8&sCDWl1qbM_N4{7sOqgS2rzn`WGcS+NbiDUP@WFZNoLgn)3yq zyHNwBgY5+t%+*!9S*1Wx_(AJW+pVyof>NqAUP6VSPnYl7UQ@Gu*K)X~QrmYG{>$*K z_2=Jebm*>JIR8rh$6KFTx9+K}Tc2LH?rELIY}UZp`|R4?#e?h>_M(($h}@!I&tCWRu=9SU_P6pE&e@iqUXsR+&; z*hN*7i}1X4180TwDE^D`r%{h~*OdM+dbk{8!{T|WB+%~gM-nTUXQ_)|o-82NpA8pQ zRN%oF8jv-xBCL`MEUEPzliCDkn3&+k-sM=ZVW;<;td!Gb;3XUVX6fyl&(pYwSTakEiPnSrax(vfUkOq<9)zLPk5yuBNbQ>4Td$KYnp4vigPvEtlEkhWRUl z?&gqCSQc~y=LhxvEr|K|L0_cWt=@TC z>Nh>Gr1kn|&WFQaq7?>{$|O$%6cY=5%@;NJ<1me}_r_83H5lhHXgNC~U<8z$`@xb8 zUbcy>2n=jZ*#l!)gJ^6j&C(^Tmw%QEfV&i|Z5Ug6jTxs+ccgni3&GqSz;%o3)eD>vWmeqAKhb#Iq=|Xt}vQ9P4madezGKs;WR|)QDK$Ani*!+d}Q2 z;**!f)~~WT>RYUpN@uXSxuSZ;Sx8GmxyvY#+GB2Sm%7YrinTj+{u(%!rlL9F3zms( z$v~i0D|71;^F7n*xHB9r6Dq_&efxrP8vCUv+6=*}8OOG`?qVln#nz0Vw}j`T0RS^* z$mcR9Mf+-2MWbtK!}G#Chj?)`+UfRmhLej0PF`qX?OBGUr3O1c0{R_Y%=ky`uG$`eK5hC%z zjD&(R-KD&(4hKTz<~7NaH9P0mZ39;)7cIaSbK6y&P3OlUY}^n(50!bW6)xcD%(|#R zM)TCPw?bpI8}!DplD@$Dm=v@{$qA&KfR~H9W94bDyLfobZ6CV)2Tk)AG~IerRjMX- zP1iqw_>1VlmfBQ1=oUkjh3~yO1K^qKnSdsV?}0Sd2s22DcM!n&H25FzGbz}*MS=eW z*fRr20QSw?-5PACejRCXTFuli&26N?dbIv>K|yeJ9r`y^UC1DL;jfQhU&tfL^^YTi z#Zu_O`1mRGd)UEp7$p6eYAP9n7$X68g)Zb|@+jnQ_XN6v!8UJTUZ|?GxiZ$#gnsX8 z@kctm&Xz#9)9Y-FS2o}u%=;koCeVtk%nEokD)_SVrFP0Zbqtqz`W?{yYIuwN=sn!# zY~2Mv^gOC5yjw8i5b`O9J)j?v2eIE9=mB7>Sl>6;;vEjmS+l_5xz%_<=relF z8j;3Vzcf}KR!WoITdrvq%=^~1PPvdY+X5X4he}kYH!J-~tyxnE{%`D&I!DV79=&5$K%1ep z!?XnVl9=@=e@%a-0OEiJLf70*vg}{cd7K}nS!HOYcXBfMau=GShd@2`Mdd_;=J##I@ zOJ?oaXAZt0=n<^<)R++!U6$~sDo85Yo%FYOC{p7!<1148zyV_E!GtGmwu`{#Yw5Mk zV2Hltx@JqwMV;=1xn@U~D+$&X^f@TYDy;YU-%yuWk`ssD%=KTOG8X}rc^Uj@pfoT0 zUr?JIy@@GK3a`H4a{})L^EIWwl8{cRrie@aK`qf^JWi-m^ov+ z00)%*Ovg)p!Rpp2fiTW896q5hP6DI?fG6yXi}w zbboK>GZ$C*%U54@U-vQ^Jwg{AqS2#5n2U=#Z(H5{jb&bBaX#)8Iey^8G!@W8>xFBC)hnt{z=5dOQw;|9idJWJyVdEWl*^Kia90SH+K$#YVAKLuq7+cJc&0V5 zmkSH{;23r+Qo_4y`)=@FiJBks@1lM70`)jrVmAvf_Fq|e>mjm!x{v%%IN8TS?yhhb zgrs(QF`SITKzp{4d%*&c?J<~**g%}4?4TV$*#R;IBBCf=1Ia8*N(9Xe)HWIT0)FFV zU2W$_DL-%RLfFp8r}>ty#&#OLYjL>?R|?U^LVM-;>qEv!C~R1ISxtOHY_mFyBhO3SVmRDt(q$Cho*4@Wy7R-!r;YJbq1YErs~4S%2X-)jY&s_3>*$DvrDR z)9>6(`lfrI_#SD2?Z*Ru`Ab2KHd*j~%#~0Gc!g(oHP7gnK-&W=0)l>K^-TSa-wXa= z_`Tq#kGLMDP-Up_*B=XhXLv*KJI8bOZ`jdy3g1TGF5CvU&q036iJQq7xeiNzu(}50 zVVqAPx{ux$aj@ad2Wm|c%PF{?^ z0CNG(x<>oaoyNO9)O>K4@vfJQ|Nc|m&wg(F+0S%8hdh=OuS40`ikm%y80QEl(6W*S zHs`{A(7u$(!ZKXM^No$j&1qn2iBse}bdvp!tp_%=-YG!41=C|fT%*6(Z2O>6fCGr_ zxz;&7MrG5a+gfQ}B@1AFPcfx;o&pD(;`dmsM4z?FMD@g8{5 z6%r=An&UMR(=+UT9FF$}1eW4r&yGe{X#E~%nbyjy;G2C~jmPa#n;e1)p2qAn>ik}( zLT)G{ErJRUyz_X}Mkn9GQ<|J#D%5g&g(so`j|Dbch2JQ7U#61DO&U)KN7=1LuTchY zZzP^1O<=`=r4D#vLbrzs3&F%b{^V!29PXK&a6Hn|gLEMg=b1J5q zsWS?f)_|=Ndfg z3?HSr}4 zW_U`Z*2d$j>H{sVZZsHdak*N8-sU=ov##mo#CfUe^HP;dLa@8M=DcM5yqfURXlQAr zvwPL@<$;CK1?z(g!_fsn*Zk`01um#D?3bnjtmMs#>7Y3>D%dlPIcKEPc@eHGmb>WC z?-t*^y{>Ni-HR7-*F_ySZA@xZ(|?FO_II*9{Mg!#o8eiU+IHW{758pSrMBI>V? zQWc4fw=D{5LZFRF4K@9gqTFOdf-;V4l*j=HPV)y+MZF@cgo1{pAm+tEL{N7Ek>r zPWfj@i7od*0s&{8r!W?_gEAh`aXSqgsxL$Dh|pJb;rExK4+{^YZ=n$V12Dm)&;vdP zRk*ZpCB^Qkc0(@DLoP6@^sF`sW8N357t%W`DfCN!A@~Dy!cj<4@u`PlWG)BU1$VBw z8t9M&(E)1$qz75$*V60I^Z($jPPd%AAUyq}9nQFkr2HU;g)14D7j;!TNK)l6xT*mF zB8?d}e_aY^3Q{N?u*!JRPG_SJ&XwUpTh)d}Ys6S}ev{r)E-zeh?st#^)BDge>L|d0 z0*NixvQ>Cb^8eS?VP2|8g@Y`*RH}z5-Tzl@M_vE_0mt_BU_-=J#AZ0>{$@f5m_Z2+ zQ1x1`5@}z2?X?#-qoX$m?!7l~a{=3|+)VtIe2jGAbZR?zN(3c}{pQmt&~5k=NY@Ja zy~^dMjw@4I+MCp$aN(CEWW;5NG2zva-veBJNNWeY1N<|J#bvy4$GCqX5vyf$@dQ8A!tsC?f~@UKz(vD zps%|xwI2Jrd*IJ!^ZB~_R7slBdvvGTWKwI4#%qh$?&7tqc&#a3zfrtCeb#j*ekR?_ zcQg5rOW5o+YLjc`X6ww&-A0YZV9;oc_sqo1zM4%udo%m$o|&)ip7Ry-_S2LUJxDEN zd*BRcv#Qx5w9#cn7ddYiuM`l1oC~9wD;{}}7qOeo>kO-<*XMi$X@5fY5o6RffUyWQ zOsV||SCH(x_g;AOAlZiu#Wyf99=srUDf@J25@*X5IK`D$a%H3Eiz%RN$Ycb+_uc_1uDlZ0;d$}|*k4|QE!$Z9&uv!$ z7F&Rn-h@`@lKEg`fWRf{CQmq<1BtrESo0Eq=2PS+Xbp7-2TfR4Kz6{%S21nDGE9It z)1DY2YXaU%5~chVE`%I#nlwUo@{>xBKOXh?l4e&$d4<<#1|v2^JVpu72UHj4F>qZl zr35Mo$d(gq!4Bt(EdiHKU7=K#RoK+pKuE82fYGMSP6_2QsZy%aiRE&6nM|nzqiUR= z6z!p~X9R$uoqkM!ngx{9ZpZI_O72BL>JjV}1UpOP#Edl83aqbxL++}znM5iPU!)eB zJh~2YuSxE=>eVC(=K+;jK-Lbq;2tEYyYQ;4#?lioH>K$Z1)@3|Y_=2%$UbYRQ4JDC zCpLK?)}TYg7-*f@)EpO1t`WEs7Rtf%b)rL-iduiwJQvUm`@jdPiTNewY0jA2#qsrE z$yj9m3O*fcnZMvxVrfV9V&{stV0b_-pD;S&NytNoWtZnX2Rwep`QJ7_oc~>V>~|B@ zz#jVzd3^>6sg%heHHi6Q(fbj1^Fp$64joWzw&L`MGwz3caD#t{w4o?5PfxLD44gyB%3t&+HBJ~BV zEns;I*Qq= zX{JbpL7}z*+d;xfILFa{Q-3*EiGby~xy4RdZf?PJcb)+UiOFqMmzB#ET8~lX@@nK( zS(&D!T|Z_gT)Cc|ZzesI2y=ndQ6B&{g2`9pQm}roh?CyDDRdi$m(IhZlf!ZEo}C`R zSxlc@?Or}7{TTIk$RG1n92bOjkY`L?n7PI856k^7i$Pc>6bMyfS185h6*Fpr8l#q- z#2&jl1@-to%;C4$d_kaGlJ6|u;n*g?M&IYKt3aW{F!89%Yycj=$>g%B%S>GUuSjP> z0sw+>+k&n`ub}VG;Gh-(+9E*LapS#$co*FQ_Teydf!C)iXta)g*L^=brjIbMQWQ() z0&5*d7IHK&Eh*aElEfnviLRbmAF#(Vtb;*ugGc|a!EK<(tKbjM8c0X{jk=C2Jx)IY zuEZ!3oRT5tbMTKSV6ZfV#Tr4WTlzpv4c3^?tdnpSFT0y)W~~#jr$sTd>lvJ~%f6pk z#lTDL>@!}w1aPhh&JVw5S1IrZjGtjW}eLc^1pT*#_+M45kv0pAq;EK^uqR3iff>79ZUQ+7mJOjr|4jBjRD=+dvy% z0Cq!FApIi=gg!(2*>89Rg|Nl3itv6Lk5(1jQzQkUfuJA;HZidG61WE|=3;6CA)9@6 zzHv24rXBDBJeU`D`i)WsRarRk0^NjGiZXg8kTr3@NDfkdW5mW42>1=8f`z&Hp z>!3y(;J1nR4up3=>k*Lw&)A5VMzCt3Itwe??U)6`7ne}kWWDP3i%3zeh$j~l#N!7D;t?M~-1k$0xchaW*;fE4K*mlkgr67+_zC=0K}navIz?hG1}JX? zE1(SM8wF7Yg5E>J7H4N@@ZxA8S&5A(DoCohW| z6)?AW<#1Ry0a@@MJKSL;bR-WpPCf$8Y0D=8F5d$l(eXMoR|hQ3uf)XdknCFKwoyo- zCmv+h7 zCyt7nnJbAO=CTpyD&px}CIX1@8F!15`5E!#yN4Dqzb2mg+nx^QQ{sndbv5%jaaUTE zWcCv;XGfyU0pj6YKFUlH_t~Zoz)-t=2mb{aYu~wu|1b=<+qZx3cOdoo_Ez#uKm^Zk zJ@zD6zkNq`VgSH#pX{A}kkfs)@!h@P`1f($cTNH?_>k(S`-z)~7kzhr2G&WqM`ydB z&?dd2i!N-dybI9% z#JJ{dt>ZJU#a~>jXFQ8fY*aE{IFDh92{!3g*_lY^k_*R~cv@L4WfEJp6$K_~AC8Kc zhIUsp%QTu59YLnqENKfetsZqnj%n?>FsWqP><#kJ)KLujdmnanFGBbDFrf$MbhFac_U<13s}U9eST3cI7OeOcM|EZhX>4JoaVq zgL2{rQ?Wmd5>M@EdS6aF`->pN@#r0r!?~(8rUTAKV;~Xs~+-HCIt^` zb>954fkkV0UTJ?hb_M!)YeMHG*NrK9c#29H7dq{*R^J#CT470(2Z zt!#QG7!#zQ8{0W%eJ=Rss?2lksnnmI5Bz-f@Jsx53;z{cW zyX_D1>5aiRc~PnQP516a%zyF167_%i_O~4W@A#hi%pX7JRow8$ai_BIM_xpr`(xE$ zWBM(#&LMrv`q@1CZT{g9{kCjxbJ?GKAGVD`&_4Rk7!$Pq`Og!nZGV<%jG{lAb1C%h zXq2aYR}d>#yi3Qt@^|Gm)#Q7lVM_bn^h7H7*GU&u@mK!gi1x1nZ;Rsn(K@7kKafd` zesEG8(|vGCtv7$5J{8V?U`^Lod^m80%=Mw5Qmgn-L~b;H=$NjW{xFb@jr@)LOEdM6 zs!Kok@rR7A5(0hY$D;gz7m|OXe5*D6 ziFb4*`S($?UHo@O=j8ugwA(fLcSTB0{ymzl%6xjX#;*P}dxOCC>F5mt^QRO2M#-ld zd8_(U-&frOpADrIy3Yz33;h}0A(VWkJ+!3onfpY1;`8^8m}@@Y>kZmImo0P&KG&Al znLpQ^=o*7y-q`0ALmlbQJttGy&!gGUO6gaok$L&A!i+1udmty(?Vd{8MZ2fdcHwS= z+Na)a(0X-yj$S$C+f&F|c{t$jL8B)A9*XZndqlM<X>3821`ZxOsbh zVykLz=s+O9H(c;#_8mK6uWEK2_g2N{HLE*SXdC>f20v+`9HTE3z9rpGfj7_=*4=(R6 z|F1*G7b-M|278pILxVTvU57?=YS|%DY84*hYn2m+#I%BUNZRMfA5!hE%pEG%d1Qxd z!-lfMeW7u~;lA*=9)bz|;X#Q_b$IaRobzyYPr2dn^oWc;%wKL#9~Qq;UUpcSwT~WF zy5xn!262t-utAcN9(GK&4Ig%onZ$<|G`ZhD@_Aps@5qs!i1kSSd0y3#!Ea`rM>1NA z{K#Z~ndHcHf0^`1A+Hu5Va83oBjgcN;RxBM;UA$C2FVc~5*3c{C=CQW_4E;bLCPGF zYNDzm2B}+l#3Zs$AF&x+vLmb3+5d2Kf4j+WwAVMKJ=*^_bMWXuaKdnOAU>u!Iz1?t z9HkU`=}~Fcq&O-g-PWTDnfBCC&D%EF(Q<=BeAF^rGjPQx zy=jB$_^Gf$a(o~(rawLq9@QNm42?k$9@F4Jdwl$;OnZE)+%a^VQn`4?c?zTSxHM;w zAD7jF+(Mf(t4|zSXtSRf8q%6h3=M0HCq{=&!4u;r3d$2x2g`UTrusG12_)5vPM{z& zd4f7traGY-aAZ%Y(w3nUT1h!`!ql4@J>gf|#!epSXS^qm9xHR5Ob<&GC(~})bTZv; z)}0(xSrsQI4oP$;C-U;LlT!y3ypz*Cf{~LX&p33F7gNel((;zplk{2vby7U4$eolN z*GNuE$ikkJS~{jXsk`wnypslTQgYHDNr-#C{6wVaIdH68)N^!?wYq1pX-eHQbV_CE z86HyWd(y*fpw;(e#+1^Yu}OotXDTCtU_#38nbMHj9_VC2&-Ad=+{5cJ&^^+Ar=h3p zsC}fTOv2~&z_ECl9;2*E+hfm~Mtk=kC>Qk(e5FOgam_Ou>hGNya+aODS#qUP@)-_0mW5{9e&M7iL^j;3 zAD5B6dO1JWYaWSbdo8Czr+Tfu#(ZyESol_7e@1WV8~DUl(>IWIsQS`9x`o58425H~O!1Bd?W8(_CZ~TPT&^M8ji~A<~`I5fLj6~SS zlSy-Z0)aK#Cng1>ed>Z$(x;I+`F+|kovhDbQH}PQDCvn)M~+#jQ%4VYC8zqnQ2I{c z8l1{%Y2B%;ODj8-(~7mHMkmT;r$(oYl2c=OiQ?4wh30`%Xqe)kBByPIQzWmfaEdQ7 zPoEOtK+@}VoRX>yg;Vlj_4Fy#fGu-MGi{NcGGq)>r%dTo_Egwx9O&P-LTKziaY$0= z@9WW+`v<=e8T+$_32lEiI;ri??bb>9bMbUp|LBm((O)1D4FO-+&twE-KN=?a{R#yy z*RRx;o$S}-oz{NsfYa3Pl{^)T{U;nZTMgKE!;E+W*aJX6O7#JFws2Ipr zPU;5opQ-f&qmyF!03a>#!1Sm@G*B3oK`%;1KM1@Za^!d(*rujBpfiP%%=t_dL1VQDh9o92SU36r(8EU;2QU52K?^G z;lU#km3i>kX9B_C$zxX0VDGrdI5?z)xb&Ch)q`n)N->xzRFH#N>!@~cY`0P{I60{2 z4>AYkia|!AX9m%jm=A$eI7sHl$_A;UDr%4#6-^Hcgc1m(`of?<29NY8lZ8OQ8>A~b z1A}5!IWs67RgDZvkwiKuA64fE75m{)v0n|r33+Bv1#88iCM_8mG-=FJgEo^+Iq19E zb8N6?R5moU`xr?N9jQ}lhO)L%-OxmjkUun$p(cl>Pf~)R=>a7@G@X}8hoE1MYNO;|>U_|)j=kV41H4ynp? zh9Qf|G&0n-Ui;zjflnpI;RDto*YJ@#scLxO169rNFkht_&K?nJhI4&m(cxTPR5qN4 zB8SI#Jnis!ACEsgo|6fO$Ma$l1QOBkM4yBno){L%hbIRZYIypfP&!-~6N-nKd>J*& zj21{7(8J8QoIi{vMD#G4lu*M+Y84ElGM#W34{sRjU@OEgh$e>xLTP$fn4=5B5{qGC zSYp-V0PZw7hih27NO5x5K-n$B2A;(Xf!#c8>J1$qHu3ewVYAxA8}_8>1?jIQ>`Z#! zh&+%!dQ9p~_wN^)(?h`lc{-g|RHU;iEtSsq^2*ZrKAs|-&q%cCe7Q=R9@#IKrbkC6 zh3SdB6asabJU!u5h||y+qV!~jM?=7eAe);`Pv)g?HzE{3AQGgfMuhzIbdHv!r>F9Q z^t4bkoi5~gf^=aV-WI0Rbh4Cemff!em-I8j`2A6M9ElKVWsF4I-m9T`qGf(iI9RlWt#T{vy4;L-gCs z@sWZna{}x-GCkEt^_f#ADPv}cFVbW({bl74C?R0@`bQ-+BQDX|J*T#I=b=x&su=$6!>;>qSjQb~3sFV<#9hZXAV*kPG0JC+v;v*Y_jRCaPyB*;z= zAu2mPY!YUtvpgCHVhCgqm*Y#a(|Pk6C*tMC zF1D(2Fzx-haZ*9&CJqQhxrs3`lbal#N+1{|$s8I(a0kH3Av7h-k&{^}2VNxT95p4TbG#f#!FZ#L zD90a^!}MaNsT?g(K%E%=NKP!$4CcgQ%|K2zP7dc}qO$RvT&o_>DHia^oNB--$*IOg z*_?W>JfAa449c82&y42WV$tzjT~zZ`Zo4J+X8!0AfiT}cEHvf^rg?Jk4lf5)AKb41IIxA7< zr}KPSep;iX^MwJaFkeVBa5tu)@`Y)VmuL3LX{ZT9<(Y{|ULNHI(|J_+2FjCZlFpOk z4hZfijO4(Z&`7RADj69Wq02@_#%cY?Xh!^hIC`&U zOS1DyEOMLl-W+%9mhT4820){M2ATvwYKGthLD38+G>p+GLJxY7Mv74ARX<76lR{65 zkQv93C=Njq-RSP}w{Bf`{K=C(_uiRW2UQX4?ldRuHs80t_3d=)wh!I9dqusv>pfcc zrD4`$Z5y>HhQ1a``n8}guf>GhwS4J$wd|Dxpk}Qu?VwgtxB!jSLv8f+&~c|8Mr}lg z#z;M`M!g;t(@tQXz^XNjJ+*eQom%UpS8IamwI-RYHAS&O;mF!>S{!sNI{KrUtgKIJ zq6n$UVDOqgBz4VhOs8hKZ`Di)Ub8V8YEC+><|ZyfA01lj-&5NfZ$z(+b~JExtzMf4 zHP#l=R%$yj#@Z)|tb@?p)!EK->xDT@>V;#F=C-aLH0!OAHM>jiXU+Zt*Kcz75H!bw z^ROx2sH7>-fi|U}c2nintf?C2G*xG$O+8p{Q&Y=snuhrR$7-5>Oq*_L0UFO}I;XOm zK4+@w+up~<)@pj4JB{e{u#syTH}Zg;rRM34)ER5!@5OGT8buprGOZbw`p3;s5eHzg zW@ucyISpBWkTjTMnKy&3VbQTjGj<|q#zE7X(bOzdJd-xsbC?*~(Ha{~V{M~RTQ+2e zok`z14Usq{Q8)k@D6)K9H8zx5qM;9|YFIyv4Kv-oVUJkV@WMt9p|uhqNW+Qh8cw6G z(FZ(9eJn7*h*mY`>WSN!8t09bV}pGb7LD^bs2jJ9K5pEPO4@kaC&$MBm*LwcTs<{m zSB1;=ZnuuxRj$3)Zhr7KYIg;F(jJek1~AXtvgUqU6}r||r5(4GBxYL|=A^A_-EQla z0vye5+ns#Wwym<-*5A{%JMgUST1wh}ZCZE-N79N*Icdd_daWo9sueXiTG6=xB>_Wk zwMg@xwc_D7ek%t&Hk=Hg+eRy0owOJ~tP|L+k~(dbQmj?lfD)=yJG{{Rc4%$0J^4p1 zMo$W08ouN1$AzA~mNUKv^8Zsf=)-;~J z*P5srt$B~Ptu>6QwG6jyog?fEcd)+Iy1ub%J?gh@wspKVE9`AM-&&h?oY9R)t{H{fHH=za%MG*Zs^tBy>kOmo7`M7E-jS|Xz1j7KrFY^2-HzxiqdUE* zPOdH1$)Zg=sRq51qX2wrt4=jM>{J^Wosy2x4V?*qV5S>%MY{2sk#*xnxd7sIW5=~_ z92D)wk+E*n9CR*6mvvgpj85wq=IiNffH3F@ut6ET(?+Uw8X>$RwemaCv7sYluLCsF z5n^G(lNIYIKJn90jG-OvI7)1g9pwYZajOA0DQL$m3l||7b_nba;C7wvu%wboKBJvopVggBl-1b=dU~|HZRZf#cg{T8 zbvu?WX<~Qfd?q20}-MR1Fbq`rA zyNCbksn&f*KX1C9|7G;=yI=lu{n!1Q^={GMSP|M+@1FI0y@zY_$BPI3vD5s%s+iN) zZ}nNb`)gw2IfTcY&w+U^zll~WBcdnGvO zm6Tzx!UKAyn%e!))Nwxuq4xtivVIsS@9`4sev}4=X0$p0*8w_UR7O9N7Q4_v^&`{V zeuM(0AAN?YZF8JltF|UUXuZ}^tm`$^YjULct4=@xBO|>=t)bUKhW1%<7hu{wX)4|m zsgo1Xo~VG~{u;eULIL(8`p^?9u+Bj}p>@W3Dy^|+RowKf4(lG*FZ)wv==tEuUhkRe zaWt(rkGky5Fr~dEVba*WjWOICw|x-mn;vPMZa-NMbw6o?wtqZX{oDTIMY8Yzi+}0= zAL6-W-x60_dm(QA^C}j3!QU5oncNfk$73jt%M<_zGI%mJ}9BLka8e^bgN1Es5GTosku~#wI@|e zHK}}sb@v#R>OR$_df(v^t=W@9Z|L&W-AHsV1fT=rU4p91LW!Z-kfUViHKa}DIJKD6 zN}WorYCH^)3X8pGNKL>J){xKvz%-krGEu8KW=o=t9Ce*wp6EwbF3Dr-AZd;bX#JYR zpfduPkQhV^Np-;_E02a`%AyiZ6)ue1IKSbdex7NA?c0pz4rm1 z^)hlEE@b3Bm;)Z;DDG2S^KUQQd-4#apW+HaqzJ{vCa-yoR&{XqAa}-XqP)#E&82B3C zA@@}CM}w`J|7I4c_NyUN?OP4dQd9McafKlaC7(G8gSDy9w$MY_TBt9JI&vZ2?4f%c= z76+t{s$se`6#7xBU?vj))d3ufgEp!WTL4s3A*Lcd#X4CVaQ>yHFjm)!%oqWiK@5!i)WSvKf#Kj%!5q^R6M6%8SGDkT zeLSSJs}-*e8$Q0#D6Xv2h~h}aF|H`RheANdAgOd4PJ$lcXmI~4Wjs0_VXTF)*p${Q zYsRIrtA(x{k5&rKSgyRc51C3mwO8M&wTt0hU4DDGw!#;~I_!gC_m%kZuqy_4*eQ|? zhiZt2d{fSbqEOyYe2m6du89k#$IFH?_Q+7Z-FQRwP6q?AA+-huus~L zh5?h&48sRG&i2WzIiUO1h7ngi;G!r<4US=x9N`$5tuc&KlMPy4$Ai{TZO~e|=XnHjm zr-yAma@1gHWA26;V%#e_84sH=9&>jjWqa@?_R{H3lIvoHH0zH>GVkTbv1M7l+4HmH{EYrpwM_3Ev zXycBwn*r{mz@=$Y3r2J)Ce8qoOYyaSXi)YCtz|lrR z*n<)FDM}1H0?|>~iBk`9xa9c%n8AjSdmL z*oijc*zkU|)yUfsQ?cJDUnBh%_l`h`2EPZwbeNqQMqmS{($J5hIlxUuBLex34()%2 ztHf#@CA0^P(F$}VoMDZ5%E8@Xky|($e*lI|KeXU9dpt1wX-{Bkx&fP5pQ4=^r*%f; zR+^C-LNn%k&`en?%{(2?gx#u{FjoL$t0B~>X=Vue*^KNGfRgnROpcWw03BR2E3t%T zJ?R?F$vc5Ng*)h(C-6Z1dk@FGHW%RPo`g>YdA8eqm%LfADS6YI-y#=ff1kWtA^GRs zR^2Dp2%3`HHB8UjqMDPXJ)V*E5-N=KahQ;u>^-tCt(5FL;gCH!MgXXb4@8FK;MX?E zb8SlUvU5q^R1wL$(L~5$K%lNa#^k6(LW*0&?TQUvOHnUlQm`W;P-$tA@-FvDdBi|i z4gw`IxCG%D2NcB$ft>e2f>)OZk5oDOnW~W!1R`M0gKM`*9poNqigretR-x3jV2FD? zAPqbQP?aslkpbTyXw4qXWdKsCd$lwOdRHCX6OPh}D@r>3+9jRS8KmErfTD;=k4O{g zWeFx@IMEsOodvi7=)FsNQ($W>10ps~Lc|CgKwwxS!bCJtqymdSH#;I5s7EBmDuU4* zUf1c7z{aE)WpQ$lMN?#DVY!91vpbG}&?Lj20jdG(Fl+#HmkeNo;H%?j z7?oi@SPdXW4>pPdAaNA%2Pln#0T8(v5dnh7gac=F)X}u( zM0;>L^y)|n$z8zF$83eo-UYziIT6T&bP|oH*D$p%#v@!u37ZyC4Y+pyao<4X-vM;nD!0TPK`%u)k*L_WAtK68KXN(K(0` zox>v6PYjptz1P}1SEOZ;h3Z0U`tL*VT zpA*bMrP(kjiLDzhfo&m(4J5W3ObLt+n>atAJL0k4CZ3JA;Mq8e=hKRK$?-knpPsW1 z7oEf+>`3xEjFWWY%*h$izNX(a+V|=8*w5%4@4#*hMt&dz*sW zn$U80%xGDH1t{U$pTMLgtz3X`X@$5Rtr0e-h{)))p_KuEGv54nK}y?PxwP%ajJ8~X zzpZu_?GR`?alxRIf99YL-|Rx#Z}x=tJJX=OduvkgXdt0Z1cC^!M=DZjPziGha0KMd zKxGfYSYmJhKk*_1Tz~syHDFP1CsdxDjEE-!iyy3Xst)kxPp%wBd@xloa4b614a`zO zT$r7>pn)AY9dz8xFk4l0cyNi*d$$HmnV!K$!M9pqFGLh!U91CbPPHv)4Q=0;;3Q!5 zYdu3rZRb?eYfu!QUoy)g+(YSd{lskI6eb&N7>ZwDd&}< zJOI(hV>AFA+#XUqaRnGwPzshEH7=AxjR0GX5canT0_x=aTHx&Zf|>^I$eiy>YIzy} zm6cj^ik{<1+fWC_H+5XSqfP*Z-wB7FLhq$f@A@gAOeWL=sY`vt!f0^pBAWD0LnjAM z(7C!;(laeN(g#yA(kDOp?ty)Sj-Oo={d??PX(#M%>^yeIYMbsLtji60U0El08pTnK$Z?>SyS2$k3 zKX5<=C~?!h=m_hB1IG2wVS$Td;WAN{00ev(8lTTZqQy+U9up?Jtqs8OBt`}%?TyZ) zvoYC;dw@ZUb!se8VwDS7OJOr*udo;lD1|Ubha*ljG`L?33GlCQCvcw{)GdzR!uPNN z_!%sCEMnMUquyiDDfkI=HpU92RKZf7!a2|&nZihRG#E@CkCE*iI%v^jut3)Y2Ntn8 z^ypZ}qzT$`i{VA@L0}q{V#LZZCRhj%5w}CvKeu2pojhI&+Kkb~724!|C==KVH)3pq z`(Pje7^EGr(?Q#y2S4o%2L=~&GPE#=pm?G^@lY5;3uVj#6$*I|0Ck#y(Fb)nGdiYs zdCPS0ElfB1f$0e6Gu^??dIs{t02javtA+Dx$%+}FQ85IYJ7&U&V@P~0nHhl+G9z9w z>%?ip21Honw84g}!JPXrew_#69z*Kao&~V+`J1De@EZ}F@tbj&^ShNd=c}%<`KG*k z$hUiC^Q~1ezU!cB-FGVFhj{ls&-XOr`LX3Z?{@*utqv-u+tT6326C?>*FA=|J2gFw}w83wybS@(SHt76&54j?1uwu@};%a8-Ts^^q7}^pqLXrq< z$Ou44071ppg!i3uK0K+w9;`PGhUJ2tcm#C$6Lf^*Ir>1YMNbRBd+%|BnuOr%L|1d@ zrtlIG;^Nx9(}@4(U~+OW3{ILYtYXlBu!WS)2{cli1b7Ctg`0;?+Ts*s8ailrf*9OT zvcNS^4oJIK zR5@~AfLrlB4t+wbH#{Ch&lA0A`FV#)?jBAL4*&RvA5i@_L_X19WUj5h>dTpaW2lLK zckJf+sv1&#U6_%+HXvZz41J<+^gh+M&D})b(cA?nQ{U-*rtd7+So;%meb^PAe$X4H zA56`Kq_Oq&7IqaD+e@RZ3^SRo&=_GBe{3FbFsm!0ouse*B--I$u!SA-rH6jtlMv zw|xQ%U$hrGBFq2~y_l>NTaCHdVkR>kTFnDGQIo>MF*8!?<_vzXc@N%&h2B@UO!(`T z1H;GEslgFpZOB0ciPogPJW zug6*6=t-M(`gxoO`s2Xrjdy928rQtZjN6r%7|W)1jHS&ZV@08ySg*NjtmSauSbN2N zV^j3_X1mcC#@60v#xB8z{eMy|jYBRT7zdgA#vvId#v!d@2xLWK92?9beT1OOIA)!1 z6#Z>@g4lrg$1@5-=SE>Pjsb$?%&789l!n$bDt&+$48AFpUeYjX=gu~oW{jZL7R+eq z#xYub2_246>qhG~0H0vdN85x%11b*tmKyyV$o>1%E@E{+sC3BDdW{_M(FtOJa-Dk! zFu<5oLp=hZYEc9`t4T?XL2Nn5%ThCjpaF{-bO5*p02i$06ucV9LjyJ>NAKW`hM}!G zkQp1^8`@Z55mgKmX(Pz2g*WhNp`QnwoSjoOAiM|wr*(-OKrVu(Kfxmdpn~H@;W2 z*Tz5lujJnt|Jg5(e`Wr9Hx0}$eo=pHK2z+zd9ly~^CqWf=1ocF<_#Z1^G2^S^VV!r z^UmBk=F;3-<{FAIb7$^jbI(+4LhqiKFkEA3y@hS&#*mtz1);?4Z(_3$OWQ2W8jEHN zNP1$Hccp8Vxw6f&zxK^?$WdaAZPs@qWQp*`%vzR~S)W(7*&NaUYF&ay*b|iOwPUtN z0n)$d2Z+lgH(P#dm~B*=X4k3=`lQ-6J6mG$AL~1_FL##NH+v5q!CskQ-$%38Ax#IX z0sq2zhaSR%;zjg%V1kRY;PN)HDXjlpGZEt^rf^v`vx@=#fbw$`R8jlnhL9B#5Y z>l5|G`Oqe&mB5#}pm#R&3(d~*swEMbZ0HEbpm3>^2?u&w+pI(PKo zCMep$)U7q7`Q94q0^}p;4{&n*F>VW14Onvsa!ms@7LNl`MicT{03L*Cp2XgEj)L6^ z6JHkSOfy2wG4CNNfp`IQ{fG>j7R5Mcx!BLP$J(@0QJD7cwGU0_Za0`<#B$SN(9}54 z@|ccJJ~ACB8BEu0OVjh#()5w7VfukqnSs&dW?-S}p@*r>XrdiWM2ZjAE6^v_K#GN-3(UAWMWlK;aF9F z9a`0}fxrtYW2<@!J!)O9L#x(TP^PYSmeuUkx2;CrK)&d0Evp-rt_AltBkk2vHI zSzR=QR`(be*{=&78m$U2QE3gYtEn|?YX}UEBSS<0sZ;~H zFAIzuNMWe25h-|$aKRLo=6HTxS=vsS-A4+Lq@CTnT?kkI) zM6iGu(4piZ>P@2~vFK#8vgkRYSoFbYS+E7jX>dl#&@>AV5ANMZI0^@aVe#xOEZoV3 zX7M==&!2S4f^#`qIhj$_T?M6`-Lf&@IE$kWK*719fzdhhR0u2^s)s zQ}+|(=6Lg=fifOf1u?v7&1TJ=bv_oi)`LI&?yu}$m&14LH%xqBzfGEZ_7wtZ_AROB z_MNCE_VSeWwlsH^y>!=xy}lEPy@sgB-n1%3X4eqg+hK3pJGOD`y+C3hl9B@Zu%nrM zaC6^2gblNEL^F^@b8Xvs@+`2AMU~mdwwc+edKRE{ZAe2M8|f0dUFciiF09J8%X|+| zjbWEI<`k*wk=j+8f7`AXC^fh>yIo#}b~_Y?-P$LSoDH#V@1jMbCroW&*W8x3hryQX zI)H|!XwWToSOl?SOS^{bC5A^N??G#;wkrUlLIBDD4Eh1<(y~v`LUhHaY7# zV)df4DPsIK)vv$@8kbl^0$}Msfbf(!x1e3xnai!?yFwmGduj%y%+YAVXtMC@h zr#TSY;`wOXAQx=gL6dSQ4)1Uz+_;)N*e+dyC53{@_V{oHAj0;Xwz4B@+u3o{ukC4c zacR$-YUzAEkcZBt=%&uqMG!bQMw2=>i)!KAD(st(Dna9{!mc^N~)C=Y;Kj%wl zWo{j3-R+U2*wvY{rB&hVhdgu+LdMR4S12XD>*NrgBH?PAI628v2RTEbb95@-IeJi$ zA;HIRilgQ^$i)FT8`~*9y!4!Mlj}}tK}J|wjqQ}PHgT%mmFH9)=(TFtTTZ>d4V}6x zC6W*}o>LpS@6_lZoCbM+PGi=l)7CwATJzd+S_k@hfDLHCj+1)g^fyP-=?{uKeS_qK zUiOyLn>z|nC`DE02)Q;K5melf>nd<$cbEVI$kDtbb7VqVM-_Mws(ht8s(yz&#BQBA z3ORueWb~k^$;yQc?`Ck6eytqky!M;{iJ<`8+o0Vd4TQWy>Aq$-;|BLO9&^BuGe?8x zw`nQC4w=xM-J7lxC2KAY^H;>1vZn36G$vR0afW6WAFG$(K+!@ zWKI%yYv)m>Ecc7Dd*Z%8F$Eo7%-!3tn!0yuv2d5X z;O^3_13(kFtKfR#u5ImsyHPTBQ4^=`HoMK--DU}>q~q>u8Mu3Xblt-yu-$`Q`tHFk zL-#PPkWXkgnR{%Pk&E;=(>)?Z)Gd(B;TFh+b>Ytd=E%J&k@VT0D^xeiqvRW%|T(>*Cv_Rw4Q@1Z(A)BIo3C%FrHMghO z&`*)Q+Ajvr?H>-BD?l2$LcbxdnC`eM`(x7)8fWAn;5}1ikXDjWE<51>ivtqehf45eTyU=)hfy zfx)GH>$+4Md-s&4#A5c<(uJ&Qbai^vU0pvOUEMx1S3j5B)qi|rx%yAPvvc8lAQNMPlbgi~ zKug59kcZYXI_yUAIJ)fWhaw@v?J0UrE>Runw6=Z^EQ<+^EOJv-sU^`18+B7 z&%Hgl1Q>nf?Y+nZ#HM$U+tfQC`NTUoP3Ywka;;q38R%??k27^^n_YdsY6{ z@v5q!UiA=qyV`3lum14E)@#Pv^%|!)ye8OjWVl?~-l^;J+B41eI$62^VR#+yEU&YX z4$wDi!|S_V_j&~0)YJ^G{p{KZ0f%*(A4*d7$UrN9e=v+X_ID;&_sH1+cr(2?BWQ*`WqABdJU8l=9;_UUAYWBYNO%)~V;|OA4r3&o{Tq^TWH` z3jzdk?tS?-vzL1aV;E7ru1->ZnY=ZohW?n*Md>*Ryu&w^wldTOks#5wCr}rEep@ zyDW6*%>+jDk5;`qJ@Lvgv)bIDXe3Zgz;=-Hs3$HV#V0(eVd=&-_tb82%`a zI+RqePk_7)ge0N8Gu~h;I!=G|@wu6s7VXX0zYbpyC^C=JP<6J{V$b{Y-$aeNbyYzHcpjBRzIL z!lwn8zft*Scx*xcZKaPlH~RJ`+s=2OxAYzNPWjGcU-{ncf%%>(N8gM0weQ2*_I;Rx zn1}dK`+>C?{orSZH-3cVD?dgyouB=2ejB`M$qXsW{dsV?&hH2Bn&Tq48vA*0m2PIi z_4&;_Sn4VXw%h!}0PaH;>_i^~JAD-g`$H85hr05EgVy>%4s~ddkG&P-*-aQ6CCfDWUojtdW{*3Q;E`9t_4~yxji*03ZMnQdMb8hk(&nG{6)HGGO0ds(|Z- z7I5dy2`&KW^#UHf4`IG}VKF|B!%`N0h`e<#EcxXmtjf|3s|q>M)o}E}YK9D$8WSai zh)-K#(|_fKZNzEV#*~Czem90)@um(tc0q1?BCPO_w^r8OCu?{h52Mxh$gUCY8bZDGo7c)Gxp`9rBZu%V$-Px~? zp+|8ozA+4;A9qa{Yy=5|oz{in`Zf%a`eTNn)z%>#dljB0DhRQBrqv)+@0Y>3RSN3iaUDGj*Zi)x@qB~h+(Q?;6jh26S;Y4fw;6>|? zzVxGw(OJ?hH|D2?b~=PD{@NW-Y2J&)?V9|1y( znwjvT=JAUNa1llA;o6B>=t&}^#u`!A-+UBxTH!`L=3t2W?$(NWwd7H+t>Q=wH%NOU zTRRd^>O>-aGeiiHhLNPO*i`X?BU1ur!~4bJaEtT{n6;7O65#KVN0IGmG+?rj2qPGc zM(B2;vAr;&QT>Ji_8K&nxL*yz!btl#ClR5$JR(^MQQ*D(5YYjLr=t$d4QA4a=(H^& zc5$d87Jk)6EJ2bBXBCY=u^JIi_Xq`_??r^!KygkhHj(*0a*Hib8`%)XL~z7aWJj;N$T9F+2Pwyq^Ya#dkXrG` z&oH+_WWL2~HANgn)tj(pt6e#hJ%**rHaeptrJ&;MdNDh^thr|SafSEuK5>!TpPzIt}UFrw(>A; z4l0ftUV3qpeQm|<;ou;<99PwLP7ourI*i+RXU6Sf7sh>3nXwSNAQsSB$4HOtVyRz% z@SZ%=V)^7qVzt6lN2>f1QX{cTVkKX)c<5g0NUV5f#>3-l5|0ST#iLg`u?7+~)}RB9 z5fQLr&5|tE!j~e}lEXemLYx*8_AZTy*UK0R-Z7>+<_w@u$Vv9{jf@$)MQV(B7K;Mn;v6GH_(ioXCvCOtYb5JhPcF!nnP^< zPLs#xU%cMNV5&izLQo%L`p`0VoLw6u$lb->*^4#~?KdJ$kHU-7N;Pq6)NP#Y^(6Ts zF&-w*FfUW`a(8?$d5tHMT=hee+@KyLw?Ejfle=-4BzK=~*2(HCH%`{=%X`V%TKUO_ zm=E?R{>zWpX`lyak7s#lO*T6Cdu{IO7ft!lcKDRr09PWC55@tlj8lgo|H&f zOfavAkyQ0FK!1Ij=>y^T%6aQ2)%#19)UgOKrNhBan&G9NG}+clTC}~Sy@zwO9~41? zxh34BOKP5g5E=j#N=d6HBEB&bkz5;z_^k9386K@fCN<{Y!;~?J;x90b@VHiq#$Fg-BF?zztnkL+OJ|^7T?f^T${jErJeWMcH$O%9k6CE>NB>H5B zpetz7#0bkVF(w5~Z1KEK>}U^GjJ=eJlNfi2^XSk6O2DToPcYM(miXqYCcy}f=f0Os zlC^b{eDKF_ze@j~aQJ@ub-#U>exnuV>2tiT^vzhL>BaN;JiTK3AieoVyH$Gkc}>%$ zM2Eio(fT%BJ8v? z7n+ym0$Y!p7c@Pl8$T_GGSWidglXaTc3M1oz|(TTbcV=@CxG5etE}?U>glDE){yz6 zH3FGwjfR-k>BdeQ@hVCia!k`Uz>zzm`6;sB^|U)%(-bM(PTB{@Fzrvj=+l)B*qvb1 zk$7B?RH!~mh4F=(ipMLYsE&8T3C2|NmZuU?id5eFwUx?qi4Bjx_ES}hHpPq=0~B7j zZmRs1n-28or^ET)N|B5*BIBc0>FD4x#^fN<@#)e`wQyIaTGCW0`QEimX}RrE>i0CI zQH@Dr(v6ieyVFtz|0!h;mn7xY>pF!9`Kn7T z=j%GP7V?FL$Z$?dmj)ivtGdI!&kHYMIVN zlc(=}{I|c(p2_0V>;>`#vrAGY+3n!p&u)3X$Zq3en%(JLlx;wLW*c^}vJKyx*_P~+ zY{xIA*)AyT?0`-nJCMDV9fEeq4$m+NkwUsrCt(UcK35X6^)`4!!`uaC!)(3@|iF{*c zAZo2l!12rkro+qxyv0leUjyQ;ok=@~a4mRAGo@WFGQ2zs!1`=3UeRpu3L_iab%syM z_9WAgMv`e!t}-pI>rBfK_9fdR$w>8%Wu*NErQs6m*m}r_F=`q4UR`FC?}v;gzZMxy zUjQaekML`P=CT>&%|NkePipV8c%jedf%xP3C>U)&S=O=?Ug1cmnv6 zt^oE4Qo!@~Z%%NVc`rWdGVkSwZRWlDZl8ItKL)(>09P*H?jH7AAF$uLyaX`px1L{R z-i9=pcQ|50&W@Q^>`^M)9YCC5z|JMzW?psq*MJ`DD)lz=>bL(dV71S@<{Imo6#F$9 zK)igOdFuH$fYU(<$2DVq!_3qF0au`Zg>x8x|19(Dzs&*vP@e!-;1x?i07!NG>^#RQ zKfc1xzQ3(9?~`4bc|XXD%==W~l%Gi)<>wVP{9Ita-z#vG-$#_o`-3eG`Ug37{>2eH z|Ir?gf$Cr<2=%yjo7~ z9VM zkWBJ}8YW2nFeW*xy-DtubW(&{XHrh?+zBR~N+(sivL>}!qiT(HJZUC(7CeJ5IfO3< zZ_-Ux2K0SfGU?CCXd>!cYa%AAWFnp%*+l$FIZkBZ$cc1cyAv5b--#xj-k7ha(;Ms6WP0O1Pp7wS^>}(a)N=rtPw)0Joi6t> znXY@=o30-m(kZ64oKJVr!JF=<&t}v8N3W7;KE0ewk7VgiOC)GcOAFI1R4>M0TE8jy zw1y^nin%ttX+zfLv`H=@u}OP>+Ukur#T0SLw4Ij0v^&0Xr-EFmsYqXec^LOD=!Yu_ zD9kAWOWJf`J2D+GSJZTvR{C^!@GHQ37g+cH4VjMaojDyBQ9sq*zu;5CzoAoNY=ruM?#}Y0^k)TT_L>!w7Y^Vh;PYZRE4yEN zGxX)=tmMmRR(|h!HY-2bB(sXN@vOo`MYAfr&So{HteQ2A0bUGxo>^mT>{*MXm|4qf zeb!+#opo-9nSU_P)2yd^V>2Wi#~Go| z%o*YD$c)&R&Wyy*5b~`g>S13K$iJ5u6+s*8= z?l5zo;yHUS+q;=py?H+KTK{I|buW%HPX<>r2!P9(H=IiJ%k>PJ;LXg_@378jP;&n! zpLzZli2p?YZV%XDmnp^0v;O7Gn{TmhKH$hdyu>g5$z=gpBW(0%Z#Fak-msiao35Ds zF#h*1=l`bP{Cxgm>&)ga;{C()px`D^L3ZU^Yvu=c)rC{BlE4X z3Fq5SuFvK>w!>t*@r6C#D;~@by zi%+Y!^K#r+^U{&+ynOt3_PmluOvCtD&gKnLspk#(CYra})`T45H~zc>oj>o+FO9jl z|EpmR{RW-O@QpT?XD``YHNOF{Ud@qUh|=UOZoYV<&xcO>^O4>e^D%C;`8fT1q|mMf znQO(b0_2*0ZOsXP9?gka6?5{qZRb>$Vou#}=$y{qsyTgfrvW5N9~AwZewNpB_NW-= z?7x2_=DL0>=f=G&F}Jdp<=lE$lymz}+N-%UzpduZ2m5O7>BVa9O&Hkk|}|7m;k;5e>3&oe74tFo@Fy9!6$2kwL51yU4A zQ6w&c0C<5U2)fm3ja#jDYZM-h!>jOk6b^^O<4}0L4zI(jaCo&Ew_72}w(OSG8d+A$ zltfYDO@S8x;ywz6y6-b9-+r?|P@dU8dLwox$(Jwl<;#~3S?|i1`TKk&F|{o!!<2N) zyjHNqg@VBrSLM{UM18p4mXf69wiKNOc2}8F+fub*r7c~Is%>dioV8{6T+xp8xY`l;v+jv=0 zZsXY$W8=*?u;slgV4inDW2*ovY^&7Ha<+Aw0ua)oC*n`Rd zYY(=@X7*h|utdhk=@T6;M?rM8!01z_hZS6MqqN4%Za zMwNEHc3x-a?U%uFR}*3vT(^mxNUtgFL>4I8i8c|p6Z?u0Zvs~YyHqM`u}fu9Xdtp{ z8N1Y&E83-|ON?D=S;kRox@?y^qH#M@xvjBdGAD0mT5|=v%y_qGmrIcVUJ#`1^4jYK zyWCZg*fr{jteyKm*f~4*sw!^hjC9b>wf}z6&h7oLlXmXlO94CAlU}xShcDykU~1OR z4HYAH?r-lS-iyJsUBAd>?RsZ6Xg6??h}~RXm)p&%nS$MdDsQ(r!*R!lWrfXgNfPRG z+>+r6XcF$E+=)QDsk44(yTiiDea=ck*dk*94UKD7MTSJjRjcgg6;Yk8?74=9GCz$X-rA|KK_z<#SZN{(f@qvQ)!9A!yb<|s4E^^USO zBXN{10N}%VPU67KUD+W>W~2^*j+GpOa!u|a1iPqyyhCEUE_cwzWx*lS-XsoL4M{rW z^5v34@wW?Ehq62)aj3NSGY*VngAPttN;)|6dfcJQL@Ev)dq3(hDyJomS|(n0evyvb zoRj!4-8q#iYn(G=rOr8NUOf)WAotadIb7n9h?aZ_#rOr%yf_7#rYj{Ctq~p%4 zDIs&_>SC-j=UtXM^Qaomd@Z8noy!`m5}dOjpTbHXmN<*@DUGw}T;QC=mRYs4*qxYk zmTO}QCog=ibn-O;wX*`)k+Wh*%AI&euXI+NOH!vm-xr*M^q$-)0Kn`d^ir*p7-FNZ%;>h-)+WxvE@b(MFjI~KA|jeRNO)NGqdI$_h7b#jk0x1IX>RM?5R5SeRP zJ>_<-sFz%>RoRlq71S-%xz@`$pDP5|y(?r`sCR|c34<$aTP^tpOhloXY&L_V!> zC2E!}u4KBRbtTpJ6C5fytSZl3yzO8gg zd(B}N4KC z;%4MQtW4`JPOe{dafXGm%Ms_Z?oa7xyZh46ygFYG zxnZj8X6f4rw^Dhj;#N5_3Afr4i@G%}3lTT)VI|L9&{sWE^#PY>SrWE*)`YUk6KtNW z^{oHhtkn~uV_Hw7I}-MQQJVL}bTcVWY*%pI6VJ~pJ#lHs;7Qd44IV)3m7cUBQSzkg z?pr-+dw}z#o99iQOd+N6WbBI?Po`z2)&nSu!jskKSx>fkLFdVCTUqzu!!g>E_fAVa z`IZ^8rvR$6r)B%X>PiY@mlWQIKRFahx{vz|)(qTms4jz{nY zSdYYoT+w^$^ByU=sr5+dJ1UPD8y z?|Zm6WpNMZ`{#^@Yy3agJ>1rROnA7Rvv)jP_w}TQ+jVQ%!|j_zl*ewYdAI}9SRI^2 zUo(oTTxW5jsh$|%eH}??b-vx2>+qY64y*(cF zPBbMv-h0bMw|BN%Y4)zRMdRMJ_Nh8=sI+eNhD_JZ-cZ+NyEoD}Q}2y-UUPWk;0kyX z?pcjD2}?6?Qn4oWrqoe`HytN(am9Mmg^bagW~T&iMmDeU;wyQqd_ki(+i}n6Ei^>5 z-s0U5>n&Q=E8e0vDDxKmH&`!7)e>*X5S4oQ-M2E{iZj4@E4y#1y+Y$%rI+|u6*)MRJ;nsT*0d}T<5(?)Ah1f zRdc!MRU3}Y|th1 z#myw+i#u-GeM$GU)tBtLWbmb&s}^6X>z3Y^HpW?B+7wav(w3>1FH=YpUzQK*d|CIT z!Iy2G)A@2FBJ<^>QN1tkjHi4B$!&|TppMFYMQO(DE3$Ewuc!4xF);Zcod@Bkcd0ZFw(ab%;N2{(gKAC@-@v&=y*~gl0 zm3&HOg7>MKSAsrnhFSM<>e8x@<7U(TseIh%pU!4A{#lYU_~*HJt$!t#Hu_hjWt~6Z zDzpBzj$p(eEhRaBR9-CkqunzJf4nBB@`K=z^(XPJ+Mmv+S$|p{R{GPnb&Ef}V}|n= zbWy3lV9pi&rKU{UU*0|`^YhLE@2@;^EA2;HBJ&f)HP$cj%}D){zH2jnDfx`{OQp*i zzf^ml_+{L*(k~mnUiQmjJnL7mcjSIxeoB7MTg>{o?en>Y%c*Q*!|l37U&Gya#MZFd zJk#C~Xq#$jSX1XM4MDs?Z-_4Qby!L28sZK2Obsb{UfYlsqPm8(^kYLqwsuO7RYKa3 zb3`l+d1YGPkoQM)SmksL#inU}1Fu<Tsbq|hMMOeq?q zomV0aO6~%Tp&F*4->_>X*`T4XNg6n%B+|e&FReD{-=mX_Q;@`J40Bm!V|d#q7OXB= z8YAw2sWGzcZXG~f*HGN}7^G8QxuC%Ib%&XVf z#sUl^8=(YNYAm)-bB(3kr?N&~@SyYo)6k$qvw*r*^^q>U=e65pt5TuC)@zVJ$;))5Fb>gY+P zQLmp&U^Sg+H0I_=qmjE7Y&373jWpe3(sfOfOuDvdQW0=8O=&W^rfE8CX}V7UiJB`3 z)~0~*hPEjv4{Mr2rhBTUu#hP=g%$I%rigDr-xM`PYntMk+vcW}d0yX?^0q3Q(uP&0 z37{ESQ{JD@H5H^wOjAKd=%xZ}eVU3jQE5}LC7@_3$r8CH-gIBnREd;~O%=(tQWIfr z7@CMKAT&wsvx+9EW0q}_H3yPSvb~>$Aci`_G_kdrV3RVumTwY&wX{AZI?TcuW zMtURD#2uQ7H*rs{EjO7=7jjJvYj-ov6aL87<~y>Kt$Dhf(qfe}G~dr8%+2@N`MTyg zcGZizUDh`T6oGPcKskl2rhln#4jLCN%|U-w-Mp?}scjCq-mh;CW5CiJ&7`^J*sd8% zbHW~Bnv>Ss(&jXmWt-F9S!;8qvaW5;m}V8t8SkvQx$Ivc&3yKTs=1sZ*lXY6vY&tQOYnfb?*;=OYeQZmR%P3mbD{J|dP^lLiMdv>7uE1Zs4-Fbw!@9XYi`?YxwYU5F|8%oi?u=xh;0?50eP#?dY5h$`lq$6 zBz;BNN|axyS_wC!XeE!_)wW95&$6wO?Vl)HrF(BmTUF#U(yAw^*|yu=t3um7I^=4* zFGOr@3(}ajZAlxnx2>>QZCgMSHMOlVL1){V`;xOQRQIp7ZQbAK03$`t;nNYMP zm;l|DsJ$m^OYHiyr7f}dPx`i`D_&|#>u%Syr43)0+cI^Z32iyeXR@~3)~klLyfIF< zmA2OKZRNxy+eT+D%i0*l=czU}dQ0D?^rTkXRMOZ=o8jp7Kes_HuhM=;$ket^sJDs+38ld$d4b_3TQS1sAvlY2fewx?Pr_3f!WOX2pk za$VM**2eYi>DDXe_Kayt(Oz)eR<#$6SLybW`BT2VqKdKY6)s1&3)YolJDt5EZC5wu zLhT$aNwvd-DbcR4%dBIm1*89E}`>*|gucSG5c-1kRaN6I**?ns&MDLYc0Wn)KbOS;^V)=fz|()#;YwR~#n z$aHqL`UbOA#CZK)yJHjvqvXdI+qklUFUM=ioA1q z%Y>tI%^1*k2B9L+8Em>-+Zo(@v!OF=y>IA@fv(UQGp%Vm6N|H^&XnthwKLTsO zOU}2N+EP;7Vz!i(0nHX(7G<{xhPA{NT5(CTMePkNZ}CU2q`D@v*}ASt>$*i;S-a-` z>SJ%$YX1daS5TL=bOkM6)O7`2aYa{Hb4DGifXT^yHF(+U9qOCHC+kqB}G@d z{)VipYzt|+cy3+NRgp|8yEuuE?&3_5R2R4NgW}eE+GPFKDQ?-gb#~w79b1?9uz71h zlU8qC(@9k$l#A!LvZhdct5UtdY~}X-Ilt{QhBj}z?Fibo-K!1O zY@5Q@+uNq;pkdogeb~Bf{)taL+ZMEQrfmz`K6P(fHpNuiR?JZrs|34k)wHDF7D2AI zC0s=dRwc`}r1L!4mVV@Y!?v91zHD2ec3!%TK6PE#rsNj+ZTbXR-#%*#S+*}O3N_mk z^c1^2p})s$PdG0N+mrr`VS7qYAslQO!o~yel-(KE#&9I&3re)iuLu`ItO>{x#4L&uKru3PmxB3w|iBi{X| z+8v3y51AcF<2`0aO8<#`N5-%$*^$-ENOxqrCTe%&G}BV7?n`&%4fp9CWmB=dqinmC z-BE74q1(Z$@3K31NKNgi80VxrD)t+d9cpfx-@$Ryr5&6za)0OT(yC?W9m}oeopY)+ z-Oh!_KX2N(_~Zw!oy*FEVdwHwA31hLYVW#sMp{0y?2K2^!cHJAxSc63TG^S_UsUW& z+b*y>Gtw2~&MY@g?=0zV(L2kQ+m)TX<(_;edvu21sWz@9c5=o*tb0njUe`UvGELnJ z$~%(o<-hvG+r464vvjZ2G0yJwd`aCMVHVi#NbNmkchoXj*PTwjtLo0^Kaq78>L>W_ zV%>#OchP>Cbn}L3^{%O%%Y|JtrRAnw%lj^L?pi4e&Rr|Ec-^k>o=eVM;YTkyc7^wS zX4@6nec7@r)*fPZrJlNI+m)~XM71k#|7YE=s0B)LI$3w<9YcWcUgX}6BQ zpMK=NYti(`8Z56LS>qzyBWq9pvF?!w{VDrM+0dX#>4 zMtD^JcYjRmyh`YcZyENkl{M_%pwG?ijaY6u_eRxA#=TL$O|v()&fbmu*a`sQBMnaOU=qCcgM#WE-9bV9 z2koH={fzt2T5;KMXs!L4_fQb9u|tU_3wtQ%{Y-Jlq)dbk)mUB+^;~=L58HbJg^;o* z=v%V(L|PZrJ<#lv_hgH)e2>yXgdQ$nTIjL9_-?58R`aFC-enzc>0NHUVd)L%687FT zRnFPFrq4NggLt3U8&XU)_eQ#=^nGidd9E+G{f?z?T|X=BTeoEE`$8>qn!cF-VqG8J z`D*(zdoC&ZujmB6f1+W=(;uqM)C|lx*6Ie9?MBN$h!4obm3$y%yiX6r>Y}EBbWL10 zzy)g-53e_TT6;KTOxGWddO7uxnZtM1kKhYW>yeP{YU`1Zb546C)OFP}G+~@_4b7Mq z_6^1QKG6=vch9GWKh@uF8@|cSw++v#X3E2HWm+~Yn6FufIn8`_B;a0A9lh|^@9sXj zvirl1qpRC5dXBDlE!Q2pBL5fDv8$;It;e#RtC?d8-wo#Yua&9Z`)VKA=b4TB~c070Nw^vRqSZ_C{yMG)=IY zC#O75ygGk+#dh6yX2Ce&J+s>UiR%n!nv9&CXt?4zJMXyCaCY8#*?(50zLFWAubc3V zm$tuOdoE{~Am=LQeysefg6nqWiM02&=801Mwaj0`T66Wu1^bPxi`0E(LLpwEH&S^lXHlz=kjG1+s%Y?G{xIQNn zwJ9^1yeb39v23=;WMLtfWks1g=mD-k3?P-0=2Cd|pN(+2e9n+#i!e+jTk{jS+Wch6 znx8Axj4Pz>}9njV`WeN>xg$DSauDSCmo}QYwYzr7{7!1Vnrg$U#&ExC;tR z46iA#$4%w93dV^E1;mU1K^1gmmX|@`kmcu!^?VG3VE_RkF++F&rlIx%Z524=h1W#Y ze0`u$iQ)_06wTn(CCI80uqESo<<0|xTZWccMO86H^Od6xr4Zm0!kS7dtSbd!9a09- z0wbi$G9d%CfQ(8bT%N4%5_^1=cP>H#dA5fT9)r4cQNsW7BP zj)7elG5-RX3Idzs011-fTULdji%W&N^$YPwtsVH^O3JnW*d>f#0W+_Z_}fUpU^IrIy_Hii>+P z)T#m#v=(mx!HEZJ8krHmrKx}<55}!NTa=k2WtkaleBk6E<^)L)9u9yvdb}8<=^!ZML7^6+>{dD?Gnd2525A&Tjc7*a2K_@BRj6fA1qTIdB_Ahdh{GCX z$=f^h_!byZpRfno>gi7R-{&3Up(Ebc6$Ts0NC!Dmn{PR#qX^}*0`LJipu*)KOP7->T^TI} z$jIPVK(UKQy~1Y}5GqraL4JY47#Q~qP|W2Rgr#Eq3?Ssdv+@w15+U7ys-hwQ2m-Y> z9>9G#2uC3d`2v$#q+3gQfWCRW6XQ+E0&gh_yd%c*L%a^4nA%FI1TsNF3lT}EdGH|U z7vaD^7gg$@Dpo-?s({)L2_!2x>?as@2_tPY$#M0U_#s-Tt$JSNZ4Y|%n1iaJ`EmC=9|(W*=* zt;+49Ygc&M0Wm&jfS3LepyxkABu3Qb6T#?01*#flks2w$fh-N|Gyt2xM=`)GFjC`o zP?I2M;9O*-`v5Opht3tGNg&xuAc72P`jP{{TPU%k>E3dz$UM?tkzL?1VSt;T0c|xa zS3_SHXvZ`PcmYPbQ4ma%=$=aGdcq|cALJqb1F|X*t7zD&$WsMCrh4#W4ZCzQ%PcSJ z+-{L=J(`!tN(Om02l-D3I->`JC?uGYD>6Bk;^dZfrM!Mw$_9XRS%+S6l$Wwu2z+HT z=)iy_6cPX-Lc$5qf8fleK#PMvlrynx)&Lne1F%&L%SEJ$88Ca3ad3On6+rY@MLq_? zTn2zSe9u6qG{D=kpkpf(Y@(=8ElU;Zs6@eq!FZ3*iW*v>s13p8Xk{czD|2AF11$%$ zGgc|&8R(J9l(K>n((6RYrh$IS0NjL@1!5`?BQUEV{;N_%@+xIOt#U1tRo!ex^>~V? z1JEog`O)0J351HX!Ca)U4K4aqg&;Bss05-t?PpBj{KnS`7x7XWmP6oBKEb3kZt+EtFzha{X~Mak8!DmdGU zjI#?e&Pfw(9M<=#BBQM&!3zLJ0bc}Y(J8x@}6 zLNcvZ@KHKzu3eCso9?m}$x6baST0x;urUCB!m0?+AlMlIb;?>z%PCmH6>8MsY)wrz zTU)p%trbF~R=cRKHBJ<3>tgacbGld`U6s@qVv73WB3mzA(baRe1vq)VE}gFLC>Csm zpwwnb%k085Yd2nzIC4>yqdq8e#_yD!!V>E$=4cl_+;++C>0O2i#$~=Cby*U57hZ$9 z>+VFnAQOA#x0pu7=dwocpP8oe9Z6F^S8T3al{PEFLQDEHrbTgG)@E2KweuI5c6`s* z5uPC(@-L(v#`~dR}ezTMk zG35X#Lo-sbtyIb76%`SQ1`!shxL{aGK}{_W0bD@zMg0dbn$byts$T@6if2H^ETeK; zphE-rF&r5AXcVCwL!rH;Fc!t2O%$>cl=XsO?Sja(tlGgqR|o?>;L?jq81PBaxfbx} zWzja51TB>ij2W0lp@}9C5`yj#ltNr0ARu5$P~4>dr-6iW15Df9Wc-k79}8510xL_v>dH8o3_ZfbXo>Tzf6?4 zULkflzTuPu-6yYPFc?Qi15;_>d@C4NNaPxjU`bfiAOIy6WHV@NLmx$eUNAJe*DK=K z1P*vpP_%Mk5J@v|I++4mVZbs#um*rq+<#KQml`h1n^dYIr0@;}? zWNvtf&_d8&&47<3&z97n_G!S9&{WoS8YTqb(n?MPi35!;Bj*;0l`E%pVE==flK?&^ zThs<9gEn1IYRh1~U}&IK2J%`kV6+A_d$v?k7l~?h*^pKzENXRhSfZn2CLNuW>f}jY zzrvgKiHt>`fm$Xg&w8?A1XUzy$d@z*O`HJkkTB+xS|fCTVK=Qeg69TjGTLKF6O?65 zl693y8O)owXxa>uWSF5!%|MixD`6$fF* zlvo9lw$ce6HbaG)L{eG9NusrZfVFn5q_54Cl(lrwSgXk!Yq{AueAFMTb>*XVOX1qO z(v+%Bwpy-JEEVch%egvNE?O^{BOy-uH=oC?U`FkT^UNF&Qeg222Czkf?Xe=MNkxHp+`_I7K&`C5XY+_ z8b-9B(@RG9lD3p8!&nI_e^3>`Bc5t2koFSPtAfC*Gmu0pnxIOqtQ37{G#2y~)&$}6 zqDJ6>vPEqcppS-UD@f5`+$rE`wkqL=A&7u53?Y#ehP)Wq^H7mN8->OSGHDPSqp+qp z4ITk`Ndim^41Ohe)`XlB4MrzmvxPDZy=J-)Q9vaekK?qS7IG|26=gIjNCw=WFSG6qZu%KWvg_ZYzOS_#4Jj%@WtfdluC%x0wF3@s$G!l#*+=6TflX!s9@SEs-mbN(x4VHU;$bcYAOOP z3{OeBp0k39qteD%qgK{X(#qv|U0KfP5KkxDo7Cx2L=SMH9xQV`Si1OHQ)Qs6pi8jC z0IO1CT+SKsTxg_}6{Bib%oK#JJ9{`{&N6Z{@06PL_5jT3U?3Mr*W$U&R?x7XK&8-l zpYb)_(O}{=o2TCYi_#|jX=k_pXPw);=NqPbKYdgXt{5KQyDTZg7%5(#kP&Hmig#z_ zB%9SOD{^2}ExZ&)(2PLw3~0${$VExe3XN_77JM!Ygra>N?8G_mE=N7iIqY@(kNw2K`CELD={&m#Lz;iO~+IfX;8&9 zq*ZJwqf!D{3gbF8o*vZ_MHVzkO3kt%^Z`7oOj^SNawaHa9FeSpz7_|p4d_ccs4vx) z^cC4Wz#tJL$Ofhg6EFcoZIXElCV71jI^HQWkp-EoKSc`PUS~8+6)3B~H zd|WGa&)2ewW!Oettjn#$>uG+ro{`SM;38#{akp%?;H({ui(TkQ;d}aZyQQ+`$oMl3 zS|4@_vNc!6pK?_^_gsu=3HF-nZb7-|CUw``GUex9L3!Ux({sL(B<3rd;|&!q*g%S_ zEqPV6Ral#CFPg7(r1xLOoA0I0ieY67tN46drvB#k6t}*U7CzhsBaJ;7<41dVZepLn zO&nT1@hNo?rCz!*D>GM;tt*+3LK@COdtDY$f;kCo5;m?x8>Il0H7NtcSdx;KQ;Zy- z!xXDYhegV18k#c|4l;siNM$g52E-pC1N%6m5&#KZU5b)Jj@ie*hN3B22{4v1 zY%(asc_NV6^?(=Y*64E+I^aQf?u+CYP+2ah180~qDBf-1kjE6`Y z*A<<|i`zydyB1};Gji%^wRBaVI+k+URk>{)bq5w=6th1TekYU{SQl6~djTXih_OoU{o0AhA0}lZ6Qt zsfkFt>!sZ`@h5Kgr<*Mo*$UMCq~d7SBq$i7 z6u{xmLw8R}Q%Wg?DSQ=8sq6$#0BT!BZ3lIfg4`TeN^^8t@0J*}bv5d8jVbK#WvKs9 z{lmqo#X#UZqt|AEDOd7&XrwVZT&BoEy94hCAfzEcPoYeepeBT&2PPOH$5qWSrk_>3 zRtjC(3Waiu;RBv-&~2#E=ZjA+cyOUmGI4KE7&povrqj{us|1MSf$>Jy3YaD+Vb z#`9^)`=DH5T)4hogD3AC4K4-nMKZoYAz*?}e5Av0OG4!&R6$M^IZD7E%}|0uymPWL zg=gBuT6)<`7tn)2-cc-6(lDMJb7)cIDgpfptKk)SUj1m?Ko=>~!z)U2#zavlm7q6Q z%JUg$7YL9qs9@ljM^BBO7rij7O)>qCwyGr0V}g}}T7n^wp}HTG3cU7OUpB_TZ&Imq z5mgRaVg+3uBZs)6lu+|flE=?20w6a^KGZWXumVjqOMVOKJn;(nhpwG)6p$XoCP+R) z$-w+09-?!2Y!nMTG=Xk}Aq@hhP(=@L&N9GQ+CGxYLot{@ zi2;h17@}f9T|yo(8wZsUmSQ1iKm(bWS4knvRMbo7sV1afeE}H78!;&9;n|$WtDXu} zAJ7QPFq{Uo9|=J`42h}feRyJqS(+3>Tt>m@7$Xa-8zrrko3$2~hxXI{+9q~uC)HU^ zS3)rdlVPQ-*pfe!&`(<)DB}a3u z!uvyYL7M`2ou#^}=b%-Hnm|-m094DCJcFRbqKm8MkioDB zZ=AecLWqK{Ig z*68#Gi=$eW@uP+cqSzdcs&#esc8AmLX~OSeI8U8NHaC|8)Pc>-2fi4x8E50@U#>SI zDH}G=61TpLFYaxeyAe*|m>6>-zPP;^zLAdc@Mb#V*5vl#`P7^bL(t1Aq7Y-~IzN^z7e!<2mXWrNJ}iFR9-k{s8vIs3)mssIOBmP~V}L zfB4(ypQE0uu76QofAin}&GY|2y+*x>6kmb+4IBd}p+0`#Uwq(Se&An!;7?GpYP`D- z{OJe&+yj3JM^R^x(uOat(N0l!CFpsoTVmd-VUn0sj#%P|O}sMhoY=)69h3{iRN`+{ zQ+T?pzFQZ4F;!_bL_9;f5&mDgH~j24C9%aE&ruS4>%IwW3$7Hl$9&hZ{VV4j)^9%g zig?s1rzDQo9~a}lY!6`lipP)j+h`+@g6%`BKeqh>G3~Y=V!LDuBK`}ui`ag~_C2hh zvwa&!zen{T7Y3Kp*=)Dko%Tk1r@h<$P5XZPh`kT)wEYSD)A;usMR&d=#(m@|_dEFQ z#Jp4Fx?A)p5_gODfFjr2nyR008%3X@+_evUr|6R(*c?-h^6V{RU4xY$}~e68_nW2*UEO|?z?x3+eE&G&ZKQ1fe^AA0Otzt#1#t(Ti8 zx)$2H{2zGy+ve=CM zZMwVV!&c{Zl~>j9!zSLpzooVND?6NxeT`3dXuY-GM*j)_)1JNF9sX}Met*|%JHGG# zk*CKq)G@SuoTAVDT)Zz|QT&w|9Y{;{KK}0DPsr~MzD&XgQ7;dxM4#L{_$yL6_$Ik| z@b~0*=YF&i@7#~XZF2tLyH!7W@Pm!}zOg2^4}M&YcjMsaNbmaQF>?LjZSseM)8x*< z1rj?LAc=#KYP{baOl`*5^l@H+sy`@@dxsbjIHcMP-}K3+hxFukhpgnSLw3q_$V=7^ zHH*i{Zx3~nzdy7C$M%r_c<2D7KGa8EJTye!J#+%+jFC4EJyA`=dFZPfX&w3+)o|$R z8{0U)bm*Jp@}X~2rbFK)|9t2NVmSHrp&yapp`YU1pCj#8;lGBoenVb6^frkddXJ(G zeMlA#UD!-x(Z{%#^47T@RNWtY zezCFL^PrAxZQqIuY&NsTC&h}isov+v-QI6d%HD60|JM5* zGTr-q66^gTN%sDPTw4$Ua4wr>a0*aLR}u1^diSNn!U|1THv+rATIsc(!F`<|%QSNyi*eBal|YTwr> zYu`6NTTB-?kBl>6=??hN_$xo?xnz9q`r7sP%HE`vBFs;-|RZ}ej#sb51G`X7{Y zta4OkCM;&yAdB{9!q`yLCV`dAa0Vm{t=4m zA0_wt$H_bWPl{pUg8iq-2mQ~IrT&L?fO7V~fHYo2e!fTk{@fFr>672|zeM%+|ClWH z|BRITf3cAQ()f@4za%&NU&l4x+PIIX8`t_#=KJ5LRQ=~EbN|JSxQFrE_FpBL{t2qH zf0Bgz=N_h!?q5Ng56XCdg8Z&Ow|NZb@I)A($8d@`^=rUwEK@8f3!5uBHz)B^=dIUsDrJC5mcZP%xFOl%!pm-mv$9Eq_ zeL0NRCWkXPUZQplQsj?=a;kYyLv;-rH`5^R4p#dI@~?wVk{}uZuamb2-$Hut;QaUD&cj_KrNOJDJUBt-2Pa8jaPDFJ zYlAB|{-C^Xgp$}`f^rT%DEEUrnL9#n#;2$w3OFsfeZ>4_7|O745XGYzCv+FQ0_Mt^2U*8;GWyu7kzU7 z$TyJIx2oG>`}db^&($NS6JncqFtM}9)yJMyx)EiPp7$SdT+kzZ}> z9eI<|9{K&o_QtxJ)`RrPzZ`j23`L$l!1X`gj7MHM@;RA2avk{+`4;y*zOL#Q_o7Ip~rXXxv2-z4ip-zLGK z?_&E0lx*ln6g~7)Z2z2;hhD{buOUyrq1d6fDdo_6N8A?4=A~%OA5*U_K)UbvmhfybnQ5S}taDGZP+)6RSUD)oX zOv8IA-SEN9G{}#J2Z&@CeZ-dwxjZ~d(!=9oh}gevw0j%J$*+f>Bu}6FI(cXKX{7fo zWf^|H8t?Pr7f5vYMe_0R_sB1YU)qR`^FJQ`F?nnFXXMiGFUa}fUy|kF*O7;}s^`2s z{LYvC%<%i<{~A6|%EK4QmEo&oWq4vU4azn=Nrd4!vOc^*Lc<{v98OT&FzU-NPjVwP z$&4sSdPGa+N6ch#q@JQj+!Qs^NJ1m+@KF~=c9WYU`>C3d9r`M&5759N8}ClovKGSYel+YiccHH|k( zc;xrE&b#FEkq^knBOgVq(IJ(2xR#v z#`H&3FKYD=NINC>6jt-HzqbJDS zqhn;^=o3{JIQmuWe~o01qTC(*CdnNA_Qv`D^VVebD9ZK!w}tRWH|p=oQS>86e@YpS z{v7_RaIcYtqrZXwHr#u-2Op9vM=y}b(aWTG^d`dYlHk!9^2O05%6>FRsgK6U)X@yW zOBAMF;N&E7O!H;#ju}b$80y9`CkY<&!*7M_LY!{==07C&j_rjzNZF1JAbf;sJT?k{ zoKhZp@?jd@V^34{$DSqmW6zVj$6g?Jj=f0fk9`mEULyRlACttfpOLj=zaTTmP~MNd zP8pA(ydQgqynF0@_~%LL*hQRo73WNlFOE$jY>sjsTX~p1b1Z~73CembhjVx`c^q`c z;|lRO$sfn(Bgf5f^%Qm7O|r)uiEzA~VveJnAK$&126^i^+J3}8f4qkj&;69VdwdXK z$H*7QPm{#)uORMIBzOE75q2uJJ8|eTT9h|2~;Gj&gqdC*nE7aG^*#kdqPEKPv}Ydgq6&ku#-s$SE0;zxu( z@l*27iJv3=SCRf}a41_R-o`cGqnb~ANJ1wr;F_1K@x_(p1j-ohW9h_Q)UVL>W8jB>YK~F)YfHC}&t?C%X`ivi4w+ zo!m=OCl6A(lLO@D$q_M>q)(#E!Oxx?C$W=H!lA7_`7Fttd>;M_a4*84ylpNgU&6J2 zOjb|+jI5me1z9}zH5~sX&VOBuLGGP=3;B76e0uVIa^d9pYS`k*i)8ZTRZ=`TK~d+v zDu(^PS#ZuISw1<3^jF0Akoi+PDEp~B_CHAYgWs?T&p z7%gD`Yn%N#`KM9gVSK}>Z&K{3ZM1*AI`tk^f9k`{G{_sLyyWdu&71q8kNwUs^LXmOzn#ZZD3i$J<~Z<;Q(u3W-hZFR zAN)lg@%-^HkFP$+<8P3kxBnk`{MS<#$lX(y;ck-Oow`fjIyFPCpISn`f>hn9809{d zq5P*x6osNhorZb9X${qM+DI~|Yf0?1le}@-Px#ZQ)2F-0e?Hw!v8VTvcTXRDm`CpP z0A)HoLgJ?}mO4F-^PVKXKK(Sge)?I;fBJdKefkB_k?83csqLq~NB;5jOO)aCk16Zv zpFK?Df8qvNJ^hRSUy`pm{Y#QR{W|`}w@C2xJ7n$j`;_wZdEA$aa945P(7v3WB$3l| zBzbxT_bG(^1i5xPN6Aj3y*NXY=`#w-dPYl@&X_61nR?28#{DpFiZhLr@=QC$o!Lgd zIJ29qoI#yG(?jBC1}W*8W7x(IbmlAAeu|Qvd4^)nJcqQtL8;GtYcmaU`OJ67;+gN0 znKM5mzdQ32^46J`$-OhL5aG<1({_9K!W`zfyXb4oMzD!D%P8pVzM2FKqffwA`}%h-oxaqI%67`sfF$8K&W zPZ`JXmS}7S*IXhu#)3#6{nuCq>6IwySwuT4uR89mhGNeev0Y0U&pIjHS^s7lWa%u* z``IqIZjwH`m&DKFdHU=CWjQ-Ssm`L$Iy+8;vri)IX_7trEcTzLxU(;in`d97YR`TT z`!A8Tvp+_hpW!&l-`QW1nX}bCs(KCO*|#X!*>@2BKAAmx9`R6y&R&I^py;!c@aN!G zsJgQuN^v#;m%~0!>Bi~JJW|v+-f)d;$@IAS%jd%JdQu*DSL4XW8!5whJK}AF+g%Ow zj_*hO9+DX!+-z^YOz$tY)Z-{`8w(M}F^4+-6|yk?)Wd$OcKjLSaIa9@_^*(kH{pIyvg7ZP==cX@Y5ZfdHvTzf97kU; zew(~EJ`I0?q{aitZ-mm0r^wCm0wo(4sJe5^!}Qs6Dv~>=r_AT9!l38pq^cVC5eTxoIY;R-lQ@!oI+j@8Reyw*u-m%g29U8wLy+|+Pog#~K zPxQ9-cJ+4mj`!|G2-S=0R_CLihW~Y>#!7BW?nv%dQ=dWlcwrme2d3dd!MZOQ#e=L zzlU6i{(3LoNLKg9;4f01-qY3nD6aE=Q}!-kQdC#h@TuzV>C5!Bx~FFthY=8wAQI#< zbXQmPbPppTh)4(_gb*Z%s0h4>sDvOPfJl%KBuJ1TAp{W+L6IOqAOsN+5fRWJj);he zNDLvUXps8X+BJ~;@0a(9;XJHfv(Igxz4tkF>C;t|zX6SPe7<>IZ|z;&Z%3|5Xh*bn z@wmSp`i=Tc`Y`=AeYieWzgxdYzgHixPtfnvCt(~>^({H13{rRDyVZMC~Ks8m* z;rrh9_yzMnR7Sf->!5O)sokiG+D+O$>bu$k?YHWGv}M}U>R#k@?SLxBw+^srJyxOmY4|@I{}zsWgSze>N=d9!}4emlO?*`VJ6+@jy>{H=bw z{v*}4ewTh9M!8pi$ax-P*Hs0^l7=6yP@V8utFBkA;gh>mXLS#JeZBbl2DMr}tp=-S z)Os~kZNLuU+tem_{|@z{+ONi_x8S{>z;99Yu+~Itr5=|^_`Nn1k?^uMLz|@zYqPaq zs`s>qwfX7;?bnEnkF>Sgi|UNFN876f#KWaB>aa>8PS12bji2+mf*r^wpl(6GPw*jURed+up^3U&c2ij@j~ULG_lq4O67yFeLLX2qvFG7QeAoJ% z`lGrAJ4Sb?4if(zwX{~DYGf8|zh8>G~{vmin1KTc53F=*#ux>Op-gX39)uL?=zcK9A`4iILBVvDb;A3BZJU z3>epJO2X5L+CXCPEHUs0V#OL_Vh_>x88H?lMx@Q?cgO>ah@~Qr-9jEUh>2H#ag`P< zqa^Y&&?^!na)1(Fl9*uKxcUo_D-hOX^+4UsOKEc5y#FdKuKOx!=A|~>(kttj_FYQr z>Kguww6ktY-A+lz>%L0bcd2bD-PLhOFB$oJM^2Ma!5t7H9Jo&CiN_`FUvEuP2cP0lOD zFGRkfcuqd|6hD>E7mH`{`Fp3Kh#f83apyqsG>!x(lq#Op*E)})7XJzs&*+air%+c% z+q;UVF@tua1^%_a_%Z(4g?4luofl8(*Evt3HC^xLTqvH@zw11~Hubxl+lwdkpE!3F zahDhKa9{B_dU(Eg3O&5%Y%d$}bxb2jR&F?YCs75B+s z8}Qey&NIbb`bhM?7p)w3_7r#OJ)G0UJ^1S=blHItyNkP}Z&fLx>H?4|4pj<^kV9oYE0@<{Z!X#Nv*pw^}dukbRF)ph2jG!D|4UFUUO_ixgcuK#aZ+;y=?SEBrut~+r~bV7v+ zi{Y_7g=O%{M}<`)^A;9C_DW%?ey4M|uo7o9S21{XIWN;?#|dOtJI4#t^>!**m<4

yhW7pEfU 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 literal 0 HcmV?d00001 diff --git a/src/fonts/mona-sans/MonaSans-Medium.ttf b/src/fonts/mona-sans/MonaSans-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c10690aaec5d01b189912ea76c04f33a326b7745 GIT binary patch literal 142100 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

j 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 dzSZ6c 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 BiPQi9 literal 0 HcmV?d00001 diff --git a/src/fonts/mona-sans/MonaSans-Regular.ttf b/src/fonts/mona-sans/MonaSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..91fbf9e229fb74b48cf7f92c4c0fa31f5deb75b6 GIT binary patch literal 142100 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 `K9k-v8~6)ieLP zm#kd7&>t_j^`zfcuNrN+vksbTCr1t!sCrFv51e$o38c(~=3h{JBBV%o<17w`3ul~j zUqGlBE##l_Axg~ACsqAK4|_?Mw|mXQ7F)-qN<#|kGX;dHRYP-g@?YVr;C~gw@0};b zeG%;Ief`t*Y-H%@ZC~xCc3{&xywUBsWX<*W{}zs#{chIW-s~#IIzV%E4R?zsHJMs> z7cG2Yi&$UQ7-l4_*s>$#&y6Qv$^5c{Qh!y%GJA}Q9rBl%|B11Dr}}FB@ai2?E8PJp zF(D3F5Mh!6Qq#x&J8w>m6_j3PW##Q~rA=*YWv-@-)0+9#rqTM$vn7k|%5uB4WvxH5-tSqbrXnjc9nVK``4~`!1*x|*lP%6f zzh#moX%L!=ex;a^;pS%a#bqdC%9t}ehE4D9!5;1Do~?8Dc6ZPBWDoaPQSr8AiOpGL zYknj2osFOPJ`?z#g|94qW9|#KH%z?4^`5B@INtKhUOf~D>Iw}iOL^Iblw)YQ2G`55iq+OfU44zHpW*e^oGF%Pnw6Phb!J(U*;+Eks?4-E ztL({2`?A{pp!(#MU#Z^%ynQu0wEa7{ecQW&8TV1hzFoR5OOfA+4tep4q*&Q|cySTD{9ZHmpUIN-*}WkkWXF+4 zNUI-ZKr%S&b_2Ee=NL1MV2PEsK;m|ljBs0b5XqG%VbAOd<2vIniI7X4T5fSn+p&7d z%W?Cd+%zd0%6Pd8+0Id!cvyCuCScZh34eBGHN=k7?`q{*4T)E$=fbqEUOzhsugmPO z+c)&>W6?Qy`_3j_-|e)qCf=%Ya<0psx6h+K{^ZE2##!N)e59?czVr2r{Z*k`Qy=&E z62P0?aL#&BaXRh#k75iug&v*i@=_CQkBF)+&V3EpSc2p-&q$8tBZa-U z;lig~y5O>pQ9tl|0lOb@!*#^XcV_vyuPbc2v%H(abEC>c1)s!UHGYVX6bpSc7uKx@ zEmCykNV{-P>yA1f@ z=MAfGbjal&3V#IJQOr9z<1e#;YVV|K8TTd8FB(6}tER7<)kIw8%V|X<3+AyZF=N4T zsXSLjb0zT3k=)xNX|)z~UKEcRXh91sIpBt;2+F6?l!P{nw-C zI8@H_&Bn~6gdz+@Z;V6(LMM%GLf!do|5_$(WHRs|-ydd$6kXB$_7UToL+yW-l~7d6 zxiPGp$hSu7dS&Nr;NA+lmIK2u8RIY)E08m(Dc~aD6i<>0SFAhHO`oW*Vtf}j4(w*h zT|0RalAH-zOH}=tH0*FXWwVQ;J;UBZ=8*Mobc2RJ74L<_79?G(Iu$iK`q4h$|ESyN z;2Xucr_`IH(b{-A@EOYx6_!rXNOn!(QI>QRI~Kq@LxfTGbgFvwKs&j0s}b-#mv$H3 zL_L_ZG?@&DX>`3?l)UDu1_D`js(`(DK9P@o659j8D;|O&BPzH{O>9J z`$o5O3VMUNy)IXQ$0N7HUy1`6?0@ZLIa?js+u3{KAlib+SX96<(rRg=y2FuynE`Mp z8G}qreVI;(5kj3YO5jV3p^X(|Q4|_ui>^4vA!~Jvi=XzGDM=kMGmbrCel_wdW*)_) zF#+vm7;Wh#(Q33vN)QhtfcP4jV+4w;F-GBa?Tj%9yl%u;kluW-BVI8MEbqja3BvFE z7#D8$Vp89tDa7|*V*HN_({c7~Hx7q@3YzkG88`VVj3pjETp`PJx3kDohPuLuXwu!7 zvwhPj6qye9>2zu9)iPE|<8WaRYx*EZu5Cx3P zVST&2q|O>d^MzNQCXR+|s|4bMQDn92iMCQe-WLhunuH4k?D*wQj2 zd$)$S`LthBb*ZC}DUfAiX@rDrX|p@Nv6mHT=qWwi^gBx`_dNU;qthm|m#-X06(%}O ztJD>Lq0kN&HsRpDtM=OQhh9WJv6HDschFZFgQBBHD!Ickpbu8rZ#Q&+DDs3+-Mtzd p6wIlf=v;m3pej80uD~^Zr0pRf|D@k~IKM^J>m~gU?|iNB9suOA!jJ#} literal 0 HcmV?d00001 diff --git a/src/fonts/mona-sans/MonaSans-SemiBold.ttf b/src/fonts/mona-sans/MonaSans-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..092959a3a506f9513ae9f5f565c0b8cd81f2bef0 GIT binary patch literal 144000 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

i>_Iov@oO1C`38yIi_|ZJ77MBO zYkW&Oekjk?b=1`r)RRS9#v)aBB1u6V1^-dU1HcU6A2M{vzQ29D<*ZC28Xq zK(Xe?`w6HO7ot`))H)wZrBIvfn4;~KP-irxpK32AV*r52@{1Y8rqn{0@#D zfiGD|+Ir;SJM6qTJJs=}Ej2WzhL)jtUzW53Jh_~j&ZCx=)FLS>riMIfm=>zxTWVNO z4Kt`=GSG8@D!%M-_~$x(eS!FSsQeEI85;U)Tpb{Tw*;0cw9Byn?lQ zjq@#VC1ynWj-a0hoE4mpoGn0Wmg2vbk!K|}ZGaOkp;Y!cHN6sod=d*#3iN|${y=KT zriP*P^QKbEGxS5hrlx0HO&=4bDpEaL<3eg&h;9~ybaNy%_D44lA<-{W^Uu`02c7U3 zU+LyggIWntDh?{;J1X@x4WR!{sB;C>8SZrPBd#YS#mkT|Vp2z?7)l(VL_WFS59NLt z`!R#qdj@gOIC70aWAmU_s19--Am7Tz zrY`lzvVkxo1Yx2pxyj$f2=B{yBaQgH3B@$_Hk>#;k*N85qUHIdWRjAD9h*uI>Kkm? zZhAWzc!LQ<(ff#^r$WP-#H$(5F_Yf^K>Ya-`q0sMg9&(pkMS(C@CbDyML&?boKf3c zmv;tt^Y8^{M?;35$vc2@jCPSDpZ@M*`q7J#e?}|l>sJv*e&~58907!-V*Rwu!oA}}up^J9Q1f;&ZEolR~<8QEZ% z3x>Ir+8nCyU}(%Nmyw3k#L7Nc7=H`x-bQqNTenhtzJScS=6$NTJ&}x z58XIIEr+Qk7k_@5@y~%k7(%=o$6Yb?RZ!ni>eJh#X{5{pZa#2}fmw%f9&e8VO6EWV zjpHcyceH&OC4QjY`}FRKe(NcEC8x22f*VfHaUk*H5Pvp&`=zcQqz|wj2{lA&frP3@ zkjXgPX)`$txIclGPow42 zyr-ax`i}$P-YZ0>ucJo;v50RnhVT~pJcMX&IM;zBY=l2~jz6Q3$@h`J5BU8Mu8#pW zF%kUAgkPEPs|bD-Ia`xYJ1W8S7?_rW>6c)a4`#s_crV)jAZh2001xn=1)HD1rogrN zO-K1pz+|eUzU;()a9iZKHG;7g%jj0VEQQ*Sof&|Pv_j_>64&fR?-!v#lhOM{=>2^3 zej$3l487Nw_i-q6%<21sP)kNt6-L=!C4C@L{3b0P0$#(R%n0m5FbX>v ziY$QwdcUGKM023PJSZ?93ha09Rz9GG1Atr#)OUb14=CG!FdPUIq3I+b%%|j7N{$Pa zTwuIrH!|j9nvHM1m01Ekn8ERrf1Ic-h8L>SO_E6bHV>oM*a&h>F$2k&D2Vm=kWuHwJn`wJ;k%6Pfq>X@Sg3eBii5`8@bJ&k{( zO8T|_M&3Ecpu3v8q$Bud<`*;`&!-YR+~IFWCgb=R6X6$v&klc|za0#B`3K3h4{Rf# z{&7A>{0;D+l9uM{-4wX+K7#vWq?N$KVp4dP-h6x5A3^?-DO zc2xU}^-#Lp{~T;$pm-%zgR&;dAI<1*G3nM%vUq<{p3r zl;^t$c;QfOyI_%LHDf&<8YVf{EG&0GTg_(rzd1q@PzQoIA}o+`e==0Fv|l-5O(GmQ z2|WxWdf|@7Ux8^uWQiFW!Qmt!(KPkPI!UM{l7lvIU@;Ii&ng0~GjMw~I`{)u>uF_` z|C36i6+~q4`z_=qTlKi7wD#NsoAQgp{{S9mAt$GOdV=DaqX#$xqZZh{e>;hBCGOSIALVKw;>=)}Q0A@TXC79-3O}FM)F>{4L1C5w!19 ztY0pAwVSv-)@gP+cpM>LCOVP@21o_io$#;Vw*u^9s2lHUl9B%Rp=&hMH~>7n4sl)> zca>n(oIJBl18^+>N*3^Tp*5SJ&LN~FgHbNy&-QTtRQ!MN?R4h= zJSzmY(>!Y5=n7i2IM4sW-$BZk&JK^~%7guP0K zLI&Pt`LBZWVgEJoJ?-~((wXgl1SRv}fN;p8_f~f#LDjYXbJC^Y@E`WC_TRw+XP$Yo z7+u^AM|J|Y1Y233_O1cSZhsOoeHzTaQeNsjj65HqHMyiNC*?R#)|0Y?b2iU~VIefx zObbszv+c6Hv=upufnEpkpC^HLKv;tLVf1X1XaoKQd@ElBy0cQz z0{Cts-RB9jsIb7Y*m2114k#4~U3b#DD7bR~{i+08d9^UE3rq@a_VLn5@VAr?W1v7g zMH$JhYWe?pASL_J-*kMVkvG9RTlA4xjm!dJZl?bp7)C>jZ0JMu%WM-vJe5u>61Z9n z-t-?xl^$(HI`CG|egjvEH5Q{`KbuC>u)swJ)WVUBjZUU*jiCcHkWSL>YTD(}v1}{c z9NfU_B|tB9ihAUaLY6qN39>M<2UzM#FpBcmfxQPd74T^@6s+V^K^??Slt-JKeJOX| zld_aP3BL=GgJ|eb1pjjJ65;T=m^{a^A4e6};Sb|EHPhH4=gf2wOr9(1kyOA7$7lV9 zks}KJ##0_&1O!D_#0>sS@)dLM`@BEqsb+zzjd4z@WvNEE7F8pS$4vtAbXp%u);eD% z%RNO{^W+$qE3#Sx*YH&C*&!^!MxDxz-hEUIrMY}I7B(WR1FoxW!Z=deA;@v_AVe0kpy{34bw z03EjeCt#UD4$q&C=2Sb+7sK0^MsPbyazP|fjc!+?H>XTXXi_Kl2J8DNkfN}#Ut&Fr zks3*oMP_#6#gn;<1@<;<#0D%?C3Z<(aRZz^MGJDla36Z9nWbnvlF)!(#`$SaA*b|M zcEDLxexK%?1Sa@+`27_YSek^jb(GFVzK+8EcQ{XwG8;VOklSP26V;G$H1hzFafdU7 zfKLR#=i55p#IxOCx0pEmJFs1f-j-rD)GOEuw+=(``Lrz?IoSn&W5GjQ$RnkcrzK!k zDO(F1@Zek4coA(>)GrJE4Em7mKace~=KqCMS@1D@XA$G4@!u5`AUs2= ztZZ#vd=0jH{cG{OSGXFwpkoF2tu15oZT^<|-JpTo^#)HZ_FY=WAK1&9!JJ={zX$wrTuletpB<9_^~)bh zsgF1h`-AJWjJuzq`8Hsm!m6Y}ImNkqi66=&1EinnAp|`;Qdb1v&w7?X{%Bo>>xCD= z!6iWK2e#?{)6lcj?~W8z0{1;Ae-I0|$N!MDoo8r^?S#9})JZbj>?nE?`|J~KLp9zj zk4`+kiu4R9A-{8gXUxQfD@&m50%TVfEbv$IJPWu!O5SDA*1@5KXnzpP< z(u333lt@Z6GR=ABAv->8lSZ8cms8l}6Xb~j2laU;lNL>%Xojw6>2a`-)PlK7s^zb46hR z{xOcvP#Uf&W>HU-*pH8VX(DtjhF{Tm4`A@C)j05u-{?ROd8!m_BOk&dNsMm<$&&j02B<^s65Fvv!&rN~b54Yif31ZjIiB||+Ro|U+iap0p7q0_`O^uBra>lo}$P|1f5Gh7UYjU=zQe>Mgi z9fDnjB&hfJ1M&OW7);{{J8A1lXmSt?&yB(Ipv(8j74NL^EzzV_W93SCQbntR7)(*8 zq^=`%&g5B^qwGBFb~WWR1|p5mC&y9heuDEjrRQTMEKiOHTn~LCQD~$_?aG4o1M_=g zDr^fm!=d7CxW0xKRPrqjuYoGHSb{t>YcF}%@T`({WMDy$QP)BAEuTEX<`5c4e~fk< zceG{P5b0EGqTWG@=;ySIc>uhPrKcmC#Ir_RGZWSQN?);U$hy-aATp8xW{NnWE%rt} zkQu6AUIXk{^hb~qq&IwP{Z*uEZ5Z)WBwo4L)xx!KBAsZ?owA{f1yEO{i*RZw9Yk#N#RGO>t-xSlB88WON3)9itzB4C6H!7griohz4hR zB*0TFb;#KZjn;YONdlhiiegm88KEKXdE|4!s2o|#;#c;QxS#e^^I=qxXY^5A?V?s3 z7PGS3%}4&N1ERNy>k7WY+H)b*6y0jx5f{)m;$g}T*_8lHo%6`TeNpfh~yy+jgR zUBhT>$c6;SO5(|Z%!9>o;L`JP=Oj3xK1M9Iq>R?JAnH#t7ce_Dg5Fqta~_^Gmb~hn zd8UJ-lEymaH>Tpd6R@CP;*n<{73y^{f{(Sz)?8X7D+YY`;14!HzZxuTE-l_94W)JJ zn`M)Cy=V&VrHl&(@`r(0=pVm`h#%~2FqKJz{ zffq)KJe9M%&hnlHYPq`)o>Pc2YN6sS^^xTt-4p13wg$<9Qt2VN9Q8uwT%L9DZU zgO!wNtfYL4H;He1Z=2TMFjiHzajPoZ0{wD(iuHDF>}l3GUSNIR_+RJ*G|jWjSZM2U zP%?~Fcdfl}-b$YDMeu$&&5H!5HV&uy4yQ)o)SEY$4}e)ihgl?;Jp?v=!H*S^-eX|@ zI9N7ySf+v{tEIhXz_kUq4q%?hi_BL}^j>2AXteh-bA}suuX?ZYuJm>9b<^A%=nXW@ zyg{@o-nA;;wJO22D#o=chE}}`bw+q2OiS-Q)<;BnBfXK#VHm~A{uFPt$5@5;zV|*e zPCxKI;QB-FL$1eoV|eR2)*H*Lsd20!Zt8vPeauV^RtB2$yidJPx&Dk*sOLei6`W1r zQ&T=3y3`CUX>QVxh*o?&RztUj*XQ%`(AJJzU(Lre*YF85*P7px^Ljp>xsgwVxrvWw zZehM?gz3g7()^iEq`8}qXYSz>!OHaRT;I#v(+Ja(k7w@ZtRc;;{Hgb-mK zQ%kW+SPa%od<+<&$8xvBEydZ0A$Y>@WwhXBj4kQn`G>Odg*GrhreBDdcm7DPnJj z+Ym_4Txr8>n7P-6+i-K0jj%DMvyHW}<_a6f&JVZQ1e?h7Bzqpu(`=gQXj|C}%+>Zn zdm*LT*>;QB^;GuOA+Te!Z}-fI3}Z?m@nt+VaS^Dedv*SE6=#qIV^dneajZC9}B zX74wDw12gK<+_)Bi0i(#FV_#-hspB@Gso|>kJ?9R%VYL2o;+cn075@@vAB+1ES@*N zv;VR$m`-+p9bkTMU$k$UKiRkJTU-yZBe@=BN15yGXgk{6VLz}R@IA(k;d`8&U~aGz z?L>2<{oH>{vT zY`>?LAM6jnTxypAbGcm(w6%6E6xeJx^S#Axfk#_ymg&l#8x_$1s67hK?1%yW$80rE zj99xyxCf#?JaQan`4)cZYWe7U52h zS^eH!-d*O;-re5aJh{ia2b*%QcP~~zR`Wcsr`HpkCENKIXQx^@3)R|Ls5Z_vwRN`X zeD4YGNppd-M>jcpbhEQZH+ioxhxu}6kM8zf^Iqdx_UIOGF!R@M_1^T}xW1nVj5 z)6Q9+-#F{j&RL&}ob|cbS)caK`dsX+PkU#5e(S8yC0L(vSXfz~OP%%U;H=N3-b~iL z-{URymYU1FpIF)69n0Asoiet5_}vlpBCd?MDB|yYU&r@T5idk6jwotyT|`CXjgg%r z?~1%Xa$4l<$c0g{>^4yMxjgEPsDh}n=)}~C(aobfNB4?;ki7?%=f$;;yFBiixQ83u9rtR3yMs^M^Jnkk-sXC4e0=;<@h`{EjxS1xP5eG7 zF{wG9jtzP?=$X_jsh9hGFzL~Ht?NBmZ)^Q&_2<@KSbr%y6f|t`V1o_~u4`~(2y##E zpKS0&gPHC#x54TLTN`91$0pZHZkn8y+%dURa_{69lEXg)(sdG~|r|wHFV&8*y4R3DvXu~ND zzi+s*VOgWg8+B^bxlzwXV;X(hXhEa(jVfBc)$*-IwT(MBe!cPR#_3JGCheMZZZfXP z+$KAlwr+Yy)32JYW-o-wrYD-+*z7OO{@$#jdA;VBG{2+y-OWF3p4B40MaLG8wiw@H zW{Z_AcDC5pBEMx~%l0iVZ+UCWt}T0p_C|P}8s2F+x8?elyIPjDJa*m(=S?|p;dvX+ zJD!%9mXg*qt!-Mzw7;i4oc3hevuQ7+4N7|_ZFJg#w27QQrWLe`Zq>9^TC3|?^=dVx zRc5OaoK4Ht*R<~3`i|Cjx9-*Y;npv-9^d-w)(cvH-+FE9^fs5Yxv@>}HV?5Xus&8; zZ(-^aZ!lh^7zh8=43CzE*J{l>+O~MC4(2L+)irpj>&)*=Cw$fQ%s{>o4|R*VjamC$ z%@n%)0A3>xKT%|=%n9S;C&KU#vGNG=2Y7>In`#@{X10ZG ziC1WaH@FD<-`-wgFSQ+H_w5zf{j0G0S7Y;kXFFl@Z?HGno3ZO%>>unM*zvB|@4Ibx zd#~+bd)oW3Os$2!h-rjfmrbzB|Hh4yN5 zDb#5~%OgDY^dfRjpye^NIGH#(j21<)i$yHh(o?pVV7HmcL(W8US#pJu%P@O&GqYB; zAIVR&JCAnnq7)+nz)nDO+Ymps<-CFG`{$W;oE32z9$GcLQFLS0C05G26^OTSc1A+FFt_q{X3_r9%^2QEEmdA$R;c&$J2B^7J+vFJ zWcSfeY6qX76f}sS?Hg!!1}$PwGQKmZ8G^$*FVw#JSSv-n+F8ij-6ew<@zKrhY#oG)@t=3I@$HNl1|>Tdayw zK}(~-@FHOWrSp*1L99)^6d4#o&RA@93*g1_IWd&;tt2mm#frdzU19G)u^V<8%7zVJuhHqhWVd@MGcnYS}bEHYK^1D<;-wC$qeWHSj0utT7y-2 zhMEsx4M$P?S4i$YH*0yM|2!5^Yha4OqE`ruVPMe%ELMWSS74x3a-*<>JHX;Pu;_yq zXZIzz$fR4aXu)|6XE!8IJ<9uejx4j1I^8_X^FfR^yus)L`vRE}jP<<7Ifb`XQ+d1a zooR%ZO=jnXd^>=XolvayX}A-;>WV$-#(5VrjQ@Mq)K$;Zr`6QxCec#vVI8lywKgnSH(n zO$tN*SaIkq$N|c8N1Cqg3th#!97FLt?D+uYv{ywb`Vs>*w8o@@`PMbels*biZXnXi z^Cu&-(l>dH%aBQVjX0V@*aAHmlSUp>vEdD{f<;)tBCO!YSi9@JSCQLbeRMfk9CfRS z)?lL>GuD*Nh#I4N_?NcW*KWN3>jU>5;(U^GDDQBlFw<`qb9rWS7MglQOZDha$I)M| zNAEPrcH?&d-k}E)-;_KoAY<_ zK2cc6aBn{6YQ}2h^O7j>8)znvnM_Ho_iIn7cuF8YA?l`b>PHq+bdbUceP2i-GIT0BHNQP_px8b{r(o) zi)X#L?!)in{?FJe!}>?4uP1;SsS??8Qg?S6k;DoVVPdRGOfivj>I~x!!k{0 zwMa3m$@gQSWG5fQLJg27_9r5*6R|?9|@h zn`y}9WY$<{UmmUd(fYRnEC_42;Q7ns`b@ZC8v^dH))QK`jTXJ{Qex144|%y5X^Mnz zEu8d*;u+f38kr;B!q2qFR@{K*TtZA)g=A$=!zW1079?c{5^)IcQ-VYsvMs=`J*%C5 z%ecoSXmk)0UIF);!}-hEBcKG%7uknc-Sarqf12|qq$LKZIro3>!{dup#{jHd&&WdnITP}^W*)&uo7K-&W!3xKAb*$Uv7R_-3ezPx}p zZATpNTULW!Lc1V2?Zth?3@6epqPRZ#PCsF_Mz&VxT4U2N@R3oZHL9BvuJrya5V*TT1N>94$sSMi8AP7zt~4n=jrQ~KYGDt4kj5^GygLfpLp ztN0imNRjw+z#2@%whB%KJq+#bOA76~2VEJ+`xZ+s-WXC-J!(oI3JK@=N&GPHBCX!| zM%!`d+6u~qv-0dgsMwcw40c>C2R1YPNcowRO{Dxp%3SzeK?*B)>_x=A9o%}~Sn#q? zJJMt3Ao%3s-m$}mWv$>yf%}bl^zjrUsdzruSe&r6h(}(vaw-ST@ov8RO#u~fu zhNBB_F#6J4c!ZI|J9uBA-H)%v0z}{`8&GE~v0JUYC6ve_Dt?Z*GzVISL(2!**P<`K zgNbIR!$Z~^z`rWwWEMU#nrJVF2(J|SR#R&PwT83eYd>qnvWVIwS@Qp4ex*}o;`jyB{ zBy>zf8sed&2UmIPMeHz;zVe%3wh;}Bvh?O?PZ8}|M|-w7IhpQyqO6vLWA!PY7?L94 zTu#}Ozmy~}TZS)TRvGohXskmRnq+u(DN^sFk56&F?&yfr(#J{!a&xd^O|Se~9bD*7 zzsa?4GuMI?Y5xfR>g8&U%E$jX|RpLGE2AO$)Vj(>O;AB=#z-;YK28O-&{gJ^Gc*q6ugF3qyn|2qpQVE zp5lr6%b95N5wtl6np8p4`AEUnSc)4cmk3WgP|MZCiJibjI;q}qSDu&BKJ8)nC^h~Y zpEU_x2=p`8X>SjE6YmuMfPH(Knvq{en@A#0IOh1lTrPS@IdHEy#J#O&xQEVxOCGwc z`szv?hGxvOq}0~`;JNA--)GX}P-)hyItbd+Ya`L`kMM#ydBnVoh(fajXeDZvAP=W# zUn|xI=6%A_sH2cFkMJ}Wz?blAHy{(3w_B$Uyj1X zF!aSB|GSa@gU%9VP>=TF{Fx{0r%0?*i_T~t#3RHv+K)|oQ-I#=BiCMX9YSvog0aS4 za?t4p@G_Zkf@Iz~)d$xGSe7`nJcV~S$yk**tV$g4v?lbp_gCOOh8{i+bq7f5;PjhF zKkqzgDScm{#Q+WMMMk@D|1jtCShxW^V|QsFCIB(P9tWzR(W{}3UzU`NpIb7vt`xb; z$$h2{SqO3h7Yu{d>gQs}ey!A4m-}o^wI%;dI|kC9`k!)XFQTBe1F>RJ*ss0tVh?!a z)9!5O`V(~B0bTb&F?x~m36{ANHVtmKLZ7Z>ne>Mx;>Ao zsiy#{7D3fSpl=2`>mvUrze1a(!QW!tdLk9{%qXiBx!Q%Xn6g+GeC&89cm1??4Kn^A z@-_~PN;%oV61%v^y9If;m0tL5*vQUA1YNLzw`23P=gDLugTOBqAX%}r;dvmiwhR7+ zgZEER@h9-!PTf0*p0%G+m7$kU?S+i06j6dP3G}@h-L8fLwGP62=)fo_H0~T|_n_-_ z5dVq~c?h3S2e}{k1khQ{5z4iPRP7Fs9!kjy*^!;}{=#X)gJ9Jc{0B2eqEW=ah7@9j zw3cxwGbOD?92t`;#MZ?^=|p~8VHqw0tA6nCd9d9AotaqypK7V^DD_prpN6z^6ErSn z?4bhAv)TjNM!M18!N^3ghYP;U+5Ue*jkeI^81}s(z9|-O-jG_7oQ3^85zGzTcV*A1 zb&R9k3G}X5UHZ>>?o>Q?GM>8?p1UEQJJsvqI3DHQ$8Rs*-}T1ovu{0AV9x?`3HG4{ zUc90A9_L8<-=mSPF^r;(WgqO1f%^&RpVI0m^A7E~2cGo=!u{kPz?juQT7gFkVNLP{Etw|&p?U& z1r$pEqLlo1U421L)pc&JI_%EP8Sh}8n=5F?W~UE9I}Rf!$Iif3pY(`pN2m?Iz@n~> zpk&3FQekkR#_6_viel0F=ftA5)WGaD2lYAl7ig}0=wNy~VbmZ`AZxV&sqRC&n9GFj z?@uGqRyEqrvO|p&hq3Vh5R5?X)M$>Hh-YDoU2GW4<{# zcatj*;M%=LakND?`JV&wR3I_m60JO>*anRWL*JOkgJwUj$W1Y%gFFcw~NT z#*Z#yEcY_bYZ-6(z2--N|BKM{3*xk|c|Mo(ThdlACcKKX9PPZ5_w`-r=XPU!@Gdm# z&*nC?^(M6S4z%?aw6znuRS!)~aF(GL@7#Nv+o4DgV(v6_?FMwM6WV$entBzo{#Ug0 zZ)oZDXz2CSei1Fu8;D1-0sn@Y;lw=`5ckB>Yw84?C(+bG`uK@XlXk)l?fcP5{KLoO z;ExY;*3g$_hCWuY5UVI_SRA6mVPxrf?D9CYu}+uzEAG$}$CKmOu%WEen#KMbif&S9 z(RpBQz?@m{#EGh}DRfSxzEqpb$r=Wm&sl=CqW9w@LbjHFZy>!D-&*Bh$1 z7wNOTzziuP9;i*C*! zGSN=mKeBi4GB~*sshP?yD(or4_|2!)UVW` zjG;^+o;sVd7%sJ9L}&{mB-t8`&|YiqTfT27eX&`r!S(q5f|y_z^>$+#WNXbk968~#7+cyin-LijVJ;0b!HjY?Eb-cTOod=kP>B-D5XR$B}yrgZ)fsc z`@F7mUaEwVo)X$uWDj#PpBS0Z`-@<|yIgw`9*ch2=;8(&%NSlFBe(2i2HYxWlMO|> zKpo9Ko=i)AA}-rZ-aLHTVe;og!y{-ha2rlkOD1QvgW6pdEMoVdTAzn8EXSHhup&sCh<1D5p!~Dcv`~hq$=j+ zYVJN`o2+@z{Q59+0rOpRnVVe3S;Gw3GUoUf^U-K%teb;ciQ~{a-dI*r{3xklKCou2 zYgZM`UuTyiW~yp^wdT*(z?uJgumhQ8zIHL?wC?~T7L0Oe4rD5=(W>w@V7HmnRSuI) zw2U2WOg(0kG^b^!Y2#*U^EC^axv#AAVP5(^JW9B^nEO(4?4)954U>oUhg_XxmECyC zm9VN)vyexz#;Qu~_g`n#iPm^)oix33+Poi1HRdjs59?7)0<&^Aa|Y`szYChg>}{>J zGL+LB?g-j(h`Jc3f^O_RBCY{X>u$6@N4v8GM?<_0Z%MeZs*eva7`xUwOU>WaKR-F# zfmu!qtC-tcOdGX!A`7Z%_3jGrt%b@b=n18mMy$!F=gG|LHRNNiJF|pY+sJi3CCl7e zAkCrH{t??*)mH_k@Q+$F$G*g^@Q8EtWc&~9j^)jU+U)j`5S|XRmgRQ>|sUAF8C6KEOKa8GIvl3NvcKj!@z`H$=v-; zu%tey`4cNmworBLVRoCu34!LG*SJy+6$e7wKT$!47t(=H}T4mIks5X*A|0k6Me)opP&S52GNH!SC;W|VFj18vgoK=wGr?klG0kWpnV0vKnHn{buQ`wKN<>Y zt)o_sNRkgQ=Ef>0<>OZ~;yu}*P!2bdl4rqsH)RpkIYO|tN>MB3Bv)ExA(+K3U33c$ z@v837in(7N(v|-Y2U5bGPJ9+1t*4P(?M)KlG)--Dd<^PvatS^hLH)^216gT}jGb_+ zz9g}%E&-ZW)EC2rdg#v)X#O*DTMd7-&jT~@$yW`Ruqo7f3TZIdSXSr2L+!M~0fcI( zDSl|pk6JHnVP7-uwE~j0S-@hS2DC@(54ApFBal4!#4an~XhSRGmg~9G|1zLz&68G1 zALA(_PQVnddu02tl!x5P_GniNHji2(xGu$hfEApToN6xveMB2k!tEdBu4HwhIM4E@ zj;}m)&x2J)Tq0wIw5=3e%DJw9)-m8B8P}ROQL@^}jLJnrMXk}1_DXK`4{wx#BRYgd zv};j~vj~M~f!2s<^`KUR7mz0&s>mztz=~91B}4_;CbgdE6#7PUC+I1Z)!Hwp-Pg%iCplK&5t;IRw@T|pJNnf%#75Per(NH|wI%+EAfDakk?Z~b8UZs5qSUs~2&98@dOQy9=(3yC4;`xZ$XM*2{@GpaP+YP~b z37T^eSI87H^11Wj%W3--K5IEwgY#*;{1M6)v7R_siCQCTN$FDmeby(hz@PP?e7XMy z5?sJK>W^5(K9?(bX6+Aknp~@Bo9Cz`>%K_#kAEZ3E&=kAlhkhR_JE($QPwuGzRg+j zJXZHD!BXr+Dy0kB&nj4hBU)*tp*!HF?zNs@E46fW8v1G16DKDQzE=MngKEc|REQT^ z6SbB5lm0i{mCKJ~WwA5NyTeYgcIjJMU!WM1`Xv{K;TyC7o^qW4{u*e7PD7Pdl-6n` zR=&`_6Yv1-aB%pqLE6uHO;Xgm(0hS!AjDvCWrdjYZ_Xp9tevza@O{`8+Qr&J?qf&? zDrs7K6j(d0repOVe9>+libBvcS|cS{Q22mjn1Wk6v>;ZDt2D@Q4Ca{c5FTq-&A>KQdTdtf$Ts0aL4rLf<^) zUkt%hd!Uq1XDQTVZVvR!#ye^sWm>}q z+<17XRp7Fwd)-RIBj6OHG@@^~+Euc}Up{@j#r?CyIzr)+mwL!;GMUCo9N- z8^la8tUYsU%E_TO@G7B5ig=7XZuOXxSFJnNv7YAys;&y4tE{uFFU{0!8w`l zhSob?F1aBc3PS^}zuO1S(Sf9q^GDGV`x8Oj`UUlTrt%!jz@r{)AdpVO4cV4VR_V?o zg|)hlAKLvuI1u@e&t1bUY&j=D}r@DDf}k!l-?TUrN5F4MU1*!&>jg2VX+U82`1&`^69xV{86 zpU+ho8rcf#=psmG`|I#lnUH_rQc&Fy;2B*1$2T-45>Ek6Q}itnD|Ha8wTA#J<N7?=QoDH#Jtj7Ri3GyT#T);JPENSw|^_cmp^}s&3D9;H__APVPI+GOf z=R#LoP)a_Wy(59e=m4-2#6Nf!_`^inpUHRvvrt`G`7^~D+9eb1#aeQpBWuCW@m+0j z&)l!G4O)vXTP*q%Vmq|25Tg^$PRl>bdt>XlkA|zVPccZE@Wem3=aNlD0gCUm+lEq- z$faJJ`nrnp4mwTDgTBYXM{D8ta%y)saHdu2+0}r-Mzps8p3}=CwFq9Qbdf_k@V96H zuryWzpWXAovuWLbyraKCW~Co^&VT~6KJcOSR1ep#2gMb!D~Ir}=dRQ%tkXEn)UP{| zot#VSm}luq1rbOgJa6eTIVtB#uoUgciw1S3I!#dDQb!|M3fiju;@D3MOf=pxj&ncp zmBH_1;18NJI+Fs$*@pmq_{N`zgv_PQA4A6+BE`n=mp#8}V=7c)FE;kD%!c|)pp_!A zHAJo7L!r~m9G2g!VLuk;g215~=q|~tBguLbO1lb$!83njWH$Kfu`|%ALn68Ycz&9!2JeA zV$^o%t)qz#uPl9obYG@{2G$r4DQqLSv z$7w_80WpNGut8Weeu?h+K?;zqT&_}S*-7@=Si`kpB)$=RsD+|h0k0mfzGVge>p{zp zs@?zXV7IWj?3y!%KFEjqMq*QGxunh#$00x3!B8dPaL_CJTRG-16GfwE_ zO%f-o@QHg26~SG-B<-40izLM&C-Km*C3DFoEsDV`Jg&xC97CGJ&^+x*;QFFyXDwPM zPkaKZXnaZ9Cm(k{Ikk@oJ9ScrJaRVI+E1X)$7x?)`JHHk4`Xr5FKw;z!9qH~JFU;d7LM9_zg$n6Gf`Pv{qvA%kuzdFDH zovIsIsY{fl1?Fpia7-_DBcnNe<6EO+0fI zSP)sDI?adxGws2^z6mZuWTzdpGu&T}HlJ3M1nrst%McAGgP&-o7^g8Q^!=Td2mQ## zfwjU5U>i#zue??5H=v?a1~KxJh!GVY}!faMh4pr?7e-veK*pyJbqJwIh$B55@KD z`AjbDrxK|re6Zloh8;j76g#ZLt2@##{AfM;=^SB`uL& zYrkB^GLcp70EnjP**S-z{NRv%t@CxEM}g)6BN+Ft^LDDE6lfYJ(oVcpc!RpV(WR?c zJYfdyb*LSg?LN1x5swW zM?+&7uTS5HzaD!Z1rScqM$uqNf?JBplaL2lPNZ_55j zO~=0YNH@Kt}{~L?wy9y4(+U@m^K&> z(1@1y?@?Sy9|U^3nGo(*5mHmG)Q4z_S65sbjEaa47AV@&i184P82nK%)}bAU9iJV| z^j6T>GU%vz)aoV4vpS!~w|tA>3Z7uAes|E0LS)a46VXOI8Z8VYPa|y17QmipH@9Ty zR19Sc(Qxg*7RZJvh>R`5@gra;kHd(S+Cn6x z-g6>x%Xvtq#x~jal1~{|)!>XBR_pj}fQ+jztX<*Sa>ovcPTP{mk;Ii~Q0v;H{)Jkb z0AG>(A(~L$U9eK1(@|i{{>c8(~YSCGZ;n1Hc)RQ{jAl<<9>dR)Ba$dfX4PU!e0Zt za}MfJ^r!!B(c3Oo7||AHp#U=&w<7})un#|%l6HhP=wBo>5?Kk>Cy5Jc;fThqR>9FE z{17}R3e-OJKOrq~h zlZamA;OgulY0}fs5sI87FUo~2r%mcfYm`jmxRMHX>vI-Q{z5yrYnBWBPe)>b5e~UP(HM|CzU-6Upc5r?#hMUkx|Wt}l=(|&q_^?X1GPbX2=-2M zeXAfilxdx7n_4Cu;X4-6y%V5z^$ztN!~jlWXs2*iU21tfTC506 zQsd+adWUA<@I=qFm$DlPf!Z4HR-_>mq>VW5Y#1wM5@|FG>k> z?cJ%^DTVliwaTt_dV?p~)mv9!^Q*`fT#=6*^u(|*SR&C$Z<%N%S8xFN*}zpb{L$%Bx={_Y_LCdCNz;v%EgN3fwN*dy&=saKl?|MYdcQ@Ua*%X_uH_H z2Y`1JiPygvAx$Bq9Hu~F-WBay?M7pS7t{blW?$eVK4(;cH>3VU>QLL{spvQJD?g^u zaz%JZyF`E_@!WS%_v>V&M z%(Vf10G|F$VJliKt(ZkF;h>mA^Cq;r>UU13)vu#2cL>*CAL{dIOip8w+P_x$HJ?cl zhkC$@*A+7cPy!1l{=}gV?hcHc?FQE%M%7;6yz!#FSX3~PtRE*b36A>i-I4b1)^4fl z1&iM2j#xr7+MwQydPwSZE9%yvol5JlQ3RpuNNl0%kZuyq^F%F>2CFriy`|@}yMaB@ zTO9d4alyUW;9KufsIm1;O(4+5(Jk+ z-itUE4rruOZ*`@QLGOb0$nJ75+5)DRycf|KDsMu?5_{eS5hEt(mVn2p{{457AYmjA^xZrBHROx1rjDZ zzMWHV;29N?6gUWyL^p=W@7Y)*+IbD_+MCVu6X2^^n8X_nv4Ac$viVL<@c$u%6-5N{ z5Jud40Gjd7Y)V6OG$KLV4{eV_7b3*72b3qa2bN?|dLw;MEAR<(X-y# z9S0jpVSS*LA{UaJD&XcKS!y%u@?E`}Yj%Y4jAxU^%uhxPgLX(WG)f+gyscH7=Y$X)IRV{FR?HyLA$!Sp~V34suB2raaL zDd9&r(1K6zcV?eEJ$E`8$oqbN`QyFQ^W3B7*=Nh_%<&_s zb?{xJB3qb?HEtva5VgZ|iy(ym-olwYY>q>2{|faa3?v_>2Qe=5h>PdsF$nrZ-yFw( z&!9~HfUao#$EtW>2+`5opvC>vK9oQ>L34NJTEREaYMK}89m|Pk$dcE|BO>uU@>ZpB zkH%s03MM@m$>sk5zCMgRcux)B&R)s`%$_ZckP_KcrGc}N8hOr&xk;e<^D~MhRZ-~oxePi%Uzpp7>^J#j6Xqx^doLHnpTUIXRp-i7xWYD_-Z zux3)-4P90yuH9&7EasTGfM_D-=N@1iaRRn8a9W~QtOP}CX%BbuMh$W%jqjRHa1-yu zA#Y7@#K&l*1<5Wk=pAY+;X3ViL+_I&fgnWVn;T^V2az6>h&N*32LnGX$by~Fk$I3S zjXKyF8t2dOGy}hnQ!eNOfjJ<01f2N@+V>~OTCW3}o&!9z79I2hDk7U}*N1$2=qb@V zwH36FQiGICyo%;Uq>&>`L7$=*NSk>#)@zW>_9`y-5j^`A{ePHkQ}DJ&Es!f{;V9lD zy**-?;QP3iDKPFM!U?VR!0h4A%s;tzP(Hzt#w((8d;l40ua+fg44@Cutd0)vUiF?U4X1Yz=Spz`8?OWD9zDiIXJwWO4!qa%+s zT0uc@kt|=3{*h)t*KjK+VGhXWYtu%aBL z=b*F`s7nmsK@t_oS~N$Y4@Ml+`fA`0BHO|GM7_?MTcje(I7vJ-YEgcA{6dr&;122Z z_5ZK}qyH%)C38%E4{{l>^HE>~ygeCDNv76*Ec?Ov-vLEad|1lo0Jr&myzwILlUKnf z;5;uu_I?98sk>;dfR6$-z?%d0`2yC|M{q}v_|(@#M*?v$5pfT1|BCJamk3*E949S> zp*^6C_(ReMu!nmJH;^aQ9oh=xIq5ZM9Nh<9{XZZx90YU_>lSYjtzcJ6)Z;Bc^?l6U z$jV3kW+iTq@t5NKNG+WVV=xJz24u5qq-E5iR^y9OLjZ{7<#@VQ`9s(PA6~|~<&+!f+MrjA8sILN-I2$`6X-#jJCSq<3l7pDHW##52E`j$ zlFga4=%kS)y2p;RXsfox5%2sS@3CJ#=8}l&2OQL6+#XoC2!pR~H zCyz1kB-EC8Xiz6W{DgXk<|_OF{b0WZ%w$MUP8^J+v$t{l4Y+)eVe&Un=8NDK3FspS z^0PoTcY#WtLs^W=$df4Oao`VWj>&)I2~g;>ppdIEzLT7giWx2OHu3V zK42eii3s4inay=^39b?SqyLdp)=~|!p9Zf6L7X)W*2jUqGp7Mu1{pl)( z>!xoS9FA*A<%T#dIO!3_JEFi(cr^cndOG4m{Fto822Eo0A_<-(BEkvGhX@1kr4Rj* zECJ0bVCv@owZ8z(WNEyCK8LSx0-iwUi(k@y{2M$*`}{r0xI|P>YZGV`CtNy)|FxEw zbk)QUX%^Sj7J}64j4Kow@ICwopErDoW4*?_fug`9Z$O9!QGi@rT-rH%PxkvrcHb@&6l)&oo1N4R`5H z>Tl>An8Rs*GMZhVfRqIIpad7>#AnbxU>(<;dIleyX*VY9=nClq9;xiHNtR5VBmdw; zxYYG!YzaQ%U)@J^Nir3;0XdV!PU~1PlR}#)2S|&d`82q)agWC7BY5KzV9uv>55HuK zfF2`Mjs<=88RHVI;Da6kdBV0q&k0*lclZn;%{Smqq+R?B|3T}@|C4tGNt&=R>im$J z2iYv_Fkb)wM11s=RknBho zNb`q-DESz^@8f^emCD9J@W#qNV8z#%C zV-ii1E|PQ~w5o(e`Q+t^glF@1BP|U2&f;%=_52p z#fMgY;)AxctOS@)Z)wcabtXEXc`ZSQI0MO-$B{R$UY&*A?=XmiTtX`t2(H) zJP4XOz*4|VNUiZwb?(Kxe?uJ)qJ^L1%~vrx8h(_h3H229DADT|NcTMM0D}P&UKdIu z4d&DDfnKmkFqiE z1=NotM~cx!_)YXpJ6fOoBSi_p-S{MOo9UlSI^l_4JwenB{NtxC$mx}#bVb;&Z4i9N zQm_y605Oo>Lb(!Lq!eo%2!h#sPoHYS{;z_pUtoI5m%vWaetaStc&&sLXYg0n43S17 z2IbL=koI}YB`D&<-iP?5xj)$zXq|K!ByN&P=tI0+_hxW>AlV{~`T_b6s-Xw<$i)BI zm`P@Gdcx5|*r`09+t7#aQC`{yl_E)Gp_Si5Z&8FJOT&w_7z8KaD~}IUN8E`+@3KcM zFq``4jn0FVj_oTn?y=>C%c0nOq=h8hAy0hhThNnaS0o-yoQV9D-GDC5Cm8FHH__HR z!0z{Prq#BGF%Fa0Hm#o~A2meJL<&UX1@;mI?68N@TofLxz#{Uqqg9Q6(Kb<{JV5&} za14?Wa>pJMxI?g_gK&Uk@3+xUBvri5?WGwI$>gLhfo~J%!HIRNaGzR1`c}dSibF=) zSc)mi*uwA83{}U7CyV#@;M`(@n_C7on?*hd3z?<|nKm)rp&}&EonG5BRyaIke_i)9( zpuUjwpzr^0pD`19N4Kx@Le%OFctAb~F1Q)ql~=)+akt^44{sW71Ic_JP;b+RWnbbU zT{5M9@LxC^luIQOcf$vm_OWrrR1Ka?J)k*0+miKDPRmkn*Z=?fSHJ_3Lh&(rgJLFr z3web6C__<6jd~HCnm<}P2-1`J$^Ys#{C__+@Z~bJ<1>tmG;&aE$2Y;jvMB;J?jOaj zm?V?Dh4Y7ot_ofi{A{18AOBbD9xROM(ZO{gjHkISNguC*;>nKjCG$IaOlfFbFn{!D z5F8WCPySc0A>+Zjor=W1#$>_V3K`^h=S7{@fIr=gRTj_@;6C;v##zVr{KDXILF@~9 z*HFU$$_Mpge`D0}C{+Ob^Fv6y6f>E2cwlV=?vk~Op5h!#Pyf^Bzl}+#!KJ{SeO#Bb z@!t`Qi!TA{*TawLvCd}#upsd>L_x+=L}thNnD&v!)oc6=I}_3GfA51D!$X_O$BtIS z`+o*m_e0F$Zh)@(4vcb|pTaW&PciSu8M7H(U;PU{%xV66ZQwfTF`U}*G1e&T21oiH zs}yLIKy)6e8}J9?1$v1jBOS4s?lSx_+u}5o?!WR;kSA$Bae)Xn4cIAfBDB+f#Iu}% z*fXt&Nir6C={bljwh-|s$0H)ZF0lr&!JZIn#k1mlal4?1kbf2*$WrmVERz*7Ng^_% zOqIhCp{p+{@n%Hr`W<3y zor;)-4WSQ&&zWW+3RI)y`~#wDy@xS4?|18It@KeEV_q&^SadItQcoc6)U*?NO zSs)9=Kv^V<#1vU9ixCqE(dUo@#YSq86nS)tq?i%ofZt`fL-9wa0G}&xO;Jdv0M~~j zJ;hIIL3FxW?1M?MNQX$j^kaYRdhD`264cOuYl=u(%@Ii(IU?ymj!4?b5lIJfMAAl% zNLs-WNhcHKh{>Rw#W+($(gBENw+wBkSfqnNPb;t||LNFuu~e=?EYcDQx)Rel3h7{u zLOKrAbvbHI@keVA)9&Zk^PVD)4n=IcYs4hPx4Rb6Mt^}Qq+{ic@c)VYU1r9UmUa4U0!80HAQm?QKCKiCiM85vtRj_F^=7LFGb zTR4GfK9OlYiD^EWX+DK%KAs{;A`QhBPG&k!VLDF*o#$cqN22f~Prr5&$n8MST!ZRdA7*1n4@6U9e#&n*^be;v;9)a8_+He|EcoHbQ0oN35IEiW7 z!?c~ww4KJZozAqK#Eh&G(f(T0;b+Hf}0b~0#tDfY&tXv0ZN;qgr2>4;l- z8cLyP!(OIvA4eO`VLH!cI?v;1!?_%7IFG44pQ8;IaJ1n9ruhP<`9h94T*TB~%+x-B zsXc*X4yQ1kW1n8^)SJe1-j8Drr!j?Ram?W)jyaqSI)4;9=n|b5aLnN%rt<+z=L6-_ z@@a5Yia+dOY9E9snJ<8k5S@FN&J#Hn@nBH+VKED_GCxB4kLAZmL(z#-IXZC;M<@0% zJ*P4~`#3J~5ROYc6vF|uf{J3G4^b1;1W~G*R1@NKG%G}PRuk1k?9@F;O%fGqvYIR^ z6-6N~Ra4beu|Tz`7Ez_9scE8G%}_JMa5YoS#9qLys#T0ov(zl?9ZYeF>(m@INBB89 zalKlo7GiHhn2@`bdsfJc{ELkLGyAqZGwYAHz|L z$8x;lv1*&zCQjj~#p5_?aT`Z1ZsVxM<2h>a1ddwV#8HbUaMa>vj#@mCqZUu%sKpaG zYVjnFT0EJf7Ej@*#n=TI`yfx{sKqTDwRkGWOrNIiPkO8m*7NkH>91f{| z%@H$R#IC!v_f{-RiQ_;o&`+v;3c7Liq52s6DSx4`8<+|}!9Xh%ZGhx#JX@ho$MwbP zXV~fdTEu6MQ}?O+Ad#e_gjG1!;n;*@8;+eg{$d=D;`d@4SKzo7#|=1kqx{=(+=GMW z`ILqZn&Ui&BlvFcm*zKbBke&PPpg}8UWCZ;Qv8;$oB4b*pD*R}TYP?v&)fJsiO+M8 zj}$xjd^evTRwOGu#OKF3&2xPI1E1&VGg79)%R@lk5|G{mV(kjZZvxVrfZQn{u?fg% z0&#YA8qB2e`6XmB`rHC;tJ6Ki|34<4;@{^n2GQpY)L@m$ptEHU&THum9H%>r6z#UN z$ntxf+vu!@@}1T6RF-m@b&wiyZC!&j>qs*!R$H-Svsg$e0PCX;_q%L!pmVuFA!Z)wil!u^0aB>UKm_KvYER zjsLcK2lA=|`DEhA!BK=`2##_bH8>iO_v4Vcq`V8eb4zg*Bq<5LOnwA^lUs4!0jWxY z_l*QLjr@^clF}({EuW>#lxV-qlB;mONv=fR8p9WYpPwAV$s@N7^;`rAdx6-65$ZgQ zO|c>%dm|RH6C8dm`2IRbEGrS`_d9t^y{q1Z43myBP#Rz^f%#Hw!?6>`bH+h^c`=SF za9oSy1{}Ll&h0R{64q$!Ckl|jehKXFdN-H{e4QX&YwZ8O$NZm!^YS0gyPWs`=ZE8# zlfCP>({Z2UA;)9RN1S`39!A-YryS4I;e5vV;*UEVubeEMYoy~1$GeV0QIF$}PaMYK zeAT(%@uhPt{e~Zo@529&crKiF7}oU>>r8Oc@g~wl9(|pe&KzeEA48nw&M1d#fUD$( z4`+OgKT0g>y&k0Z_x5W_z5*ou2QB96#3 zKkokvotHa5bADwyuIB4sId5`)?^0cd^VY6wec$DD^)?^faFXyZ0=Ha~T+_q)7=0HB z^&eSM8GsoZV{;XtLU)-}>KE_5KBdzicWKR;Y^ zPWGo2a?-1A&-yAFmOM_nJeq8#p9Tmj(NH}o4iw!1HIcR#GS7kNZW_rv$x z?l||Q?w^~E6uzF|&T#+IeWU5{ny&TzTikcL%}20*2_MY(O}H3|YlJVs^ub^1U+T}u zzA?9->Kd#Um3`d(Nw?!Z_e1V4-QRUPfEVs}-G~0ew1e9iER*VrdU3kg zn1ql^;o_pnN`Y5`MR7_4&dt@eE%Z8-pJP*`TB2kEp|{! zXaMP5E8lPC>t?<#j`}A=j&>| z9>&+h_+|@U0rm7(t>($W2dZwd5)CH#ecp1+l$w@1q9q3<|o>w@1& zxH|`St>x(F>nQG#c$%XhZG_GVF_8GWR8GhBG`=q8^M!nVToHEsLT$r&FVAf6;qxYb zn#0$h@p%{B5f}0KOg?Yq^YdyTVHRK0&N&jAg~xD~idK-P;phuY%EhdjEK!K8#h6q9 z-9rcdyA+n6Nvy+N&i0&@h&KE*bQI5umqa^jW;X$=j$(%UA?CNc0P`$yBP=A9;y%Wz z$1(f9T)ZiF%ioI6SbO+Swi5gcdc!}6Z=oN2RGfg0?-2C0|BxS|pJ*oBpJ&1tgHSV~ z;K2I~?mQ|Gr`{rK+|PJ4m66!=bBGN~Hr zEMMmHQNHs>*d8VLBt6aG`#br%H{DkWbj{jCsS^3=V!4wjitlTRS`BI;ilVqJeV8AU z)@LJdm-umirlL%g@DiwuESR;-gJJmt_ibQ084K=vxtI^W`>5Cgz4(h_2lL&_neSe~ zeD_L}q3Iz@6^ozCA)#*(SrmWL7naGN^c@n)UB6dDR!V$ZLf@6J-~W_vGprrW{9OR< z^i#eqp>p(FYoSNe-=**c2!2=M-UhiccB+0x}tO`tWUm%?uu*F-|>ue zm^kCwoZ?naajSX|d6KMxGp-dRqaq_`rhIu6={C2jpuw2k+cUca+0)=UPtlI-T(jNd+0O+h`uvRYNnspzFY0KjuvX< z=m{;N_sX_)tHfx|jr{miISu*2(=HgadWiN0phyHMc-9y8gEY`u1~_mg>=zzUEnM}p zMtQ`l#`+eI*xfh<=eNh#&+^E)ril|ga&+^Aksi5a%ETs*ysrgm%?=5+S-?hR~9WgeYJQ)pBJw><8*Ok>DsnM;)9hdmbHm5SDvwG zrTFe-XDR5Zakley?5g#ruayaBtX;fH_FavCq^Etws--foy?w|~IRNJpS&nn5^y55C zj>EZ3w%}YY=iyu-m*ZS1*Wz3yx3sqp9U^zOuV2_MFK=JJx?Ntqj`I8!@KiCb621~$ z(Rz&_uG76fxMwloLH}#aX6_2UKzGOwS?}(p*V55iz$Ctx%xBuSTY@HW;;S@V(b_f% z8U>T!E688)*rI!w*Gt-&gE)$iL~#-{EF^Ou(6W%UK1gCFEF`U*k;02BT?d|nV>XN% z-~@%D1=iJd;y8RQ?w22_JXH-l{T1pJeD_;=gHL^D>21ld%(7f-dBpOn~#DR)}>dNchmYZa5uPNUv2syEYI~O>O*^h#Gy{r z@JQ2M@e-aA625zQ1C~;x!xeE};+J#>dC79q{UN6NC8qntWrOLf&`VNV*-;+lNOfw) zT{lJqiY~#Uruqi<*8`AnlsX72yi!LMRxzsMrW9Xt3ar;c3hcCj6#wEB;9lyGI)WAv zhPc5^E$9S{lsKq7vd!WSwZx7dHSSPKy^n1S?5Ixg>{+na&Vh&24A?{$V|Rn4kO$_& zhIys95LV3hA@7h^-`nif^G;Z4$kRqM)|~LtYDs6?5E6NT$SHt2j?wELY33 zxSkAi8}$~}gyT*Mu3B*Dvw##J$ue!6X|7GM)ICK|O5m0$_|H}0t`$ck4h>1XOLrtm zCS7-ow}JPgjQdpY@8CPy)ryaR_g(+lvEmUmP>W6Xp2upoV6S?EeQ3SWC?}uOSBLJC z4+7=w`M@`maARS&CyQh=+GVr@TtY*`s_un!)U3$I zgyaKr{SR@u=_<#lhknBj?tuEp6H3EW=SZH)@oK4Brq-$Tn1yzzt?-}O2``xo)Gl?Q zy2!v5>|CMds`+ZUIzz32|IH@&-E4z*&35?K?0{#@r|NU~EYOZey0oz<%MEFkR(TmR zBRmW(5?BO(L&Bzi;#@>nhPfS9)4*qvFd`QIhIAhkCD$P@N=d)L+U`crJuDs(e}v@! zKhU%MN$eGm!*2g1JUX7nyzyDs{{IX;9(m5bgc$<)%l;MGlw0L(@Wr}A-YI_%ABel5 zQ@NLXu)yUWfM(@E_(ng>zR{1eZ}gv_&-;h`09ux>;U)DAJa0}VFC_RNtwQ@(0|IMR zyE;p4fFI5;;0bgcJbh9|~QcruRx_c{f8jVwo0^wZ(# zeI;o5dY10*h4%4NX!iasUC_n#mHnXG$pZ|AkQW`it~uZh>;1M_#xIo<+ac}Kh}_Q8{ouo7OjNIe>SlBg}%3qynhGw&zllkhx! z8vbY>nVu!#*|YLF_9cG-o@t1qj9#Sqy8x^o0BpMQDG@2qX#GXLEMJj-m9NUbK^A{q zz5y@QH|1OMZEoK_xnCZT2jzS4T%{U)DE^6he2MXpa4lFPD)q2DBHx!sdk>eP=EeY2hPzP`oD&iNo-f{($qXL?4m=(-Wo|5{DzXU&8+;SQgz|PWPa%FyFhD z?-5_YEDdkb7yw=f-$-cmWHs(t(Wj6=n0E#1jn%**3bPngWX_e^DAfX-O>e-*csMvS zcsX%G(^J$9Yr=`^3{h45M({1F$+ysu;Gmiy%_8U_G5UdbUm?GZLQ`E3>cWsN+;|50 z1ZnMk;`iYchqVj3SG)Q&*rTTYG*M(%-)Xx1E<}~2o1j$-X3G4ei#Fl2*hyWjl(HzR zvMD<_ZoVo|g{nvus{v}D8l(n?QSfTeZZ&he4N>@AH;NAR&lP}Lcgn8BI)!SiWUc|N zG+;a$32GUKRUH#V6R2h;;2fm*4jKz1=>7@uk@#4A0^R=S!0RvJmH)N)MtqAA>U(iQ z1VksgUz+$rw)9G$%#pbUcW4gr28^-Y_`}^M4v_&JPA2pQ9+eHvj!)$PM~12rRjP)m zGF7fBRHdp4<0JFHK^8N=Ul)brcjGHT?1g^b3kXcYo=kHvo-N1BejTh!+u)gXF{GGl z4Xws~;ChdNQ@;T!{6u^w?J@x#WJRD4(wL2vlK|}}K%EM_opcsYu}0)+a43bmkD<$7 z0^Ta{_P^qMt3(>`_;+!>TOP-GC}c>5RRs6r{5U-075LS2I6n#hcm=+N=#Ah^GD!SHkA(i8KN501YBnTlZL8B)r9N*z^M{7QZ?f`6WCR%M!_m!14N4e!O?0G zu06oGGBrj`#&tGuuUw5)Q*iAC7FMWJ;2~=RhXd`i7N0`Kh{GuV4N6<7M+Mf5$Qa3FMu3p zMV)41R2CT9XM#hF*S~U}7!94A>GK;QKJ|+un}fH;w2W=QSnK(>vNi>cY};9ZilJm-U) z&fFJsU(Tz}Pt4zntzme_LDYQ+sQ5;4m)HY{j+2v6s~dqyFJV0SM)gIlo>6aNQvkbB zt2|4YQLEa_ZK&0aoBTXL&8-D#S)-Aq_9Xp=sd?Zj8sQGdM-F@!^Ar390t3!2% z$`0*5H2b};-g_6{CvXR&(|cdMhnehqyWZP=@URdE|9tRqoF6)P_rcu<&pEhAh<*3% z%irhR7q>6w-DU4w_VyL7-FECaf?kBzBy56{K7wcb?hW3jU;0=c)xX`&5;D)#YLR+C{S7Npu3@=! zA=abJ1lO7Y4n}g()9{sj3N_vh{3K0RHs%%;@L#P3*Pe)ZXA5RsbHJ-NV^rS?PvTv$ zMBD-m=bc!g@c<;;C6IAnR9h?-jG7i$;M}m^c_3fpGX;(S4UU3`YBN?FEXVqS(_y37 zh!q1@V0FN?@zlWUsf|?FG{DXQ#-LL*f-KBnKk?L09{1sRobDJdw>u8>XkNrf8 zRo$W%z`vnMeg{wV8Z}&vQ1hW7uwY$SU&xiI&n8!_UH!OW-)oOUs0 ziyOsCwO4Eqzrd;!nl;`9J4rjn6RiA#)bt$*6w)Env9cop(q<{_v{;pe)gBXMD^^j^ z%BUIYak)tDz$%Ci(C06(dg3~03Mm%S$C$HqiVSEOvM{IeK#R~HdIm4ni1~n>!(@Mv zFXONZsUPg-nOMUR51V-oRzQJ!$vmu<$`yWC)9Yjb)>~CzjZ+!cDhc|tCX-}QZ``SQ9aE_MJpu8xpFKlKjXwad5Tylo5WdI$#te|6Px4`ake~F zoCB}pZCKZFu3RN{!W;QKxf<4?GcW@^3-;bK#f5Uc_${nQH_1!H<#MywEiV(lkr#`b z<)z{_tmC>{{u0{uJ@Pl=A=vgGlsAdhayBf{J0Z_~ft68%#1f24Ka*RaIo=Mt(%IrF zxlLRx&k@zqCl<)@;(V+pxkPTTII(=fW$9&cTWruK9E4urs5+*OfKv9U3%!~LWkQD3~ z0fx#ntWnFr`m8KbBoncYEg7plQp6ycDvD(iR)-D4+Po5Rx|}J_kh8=xIYq3HE#g!; zO`L{Ndbyk`*2p>VSePf)$@yZvTp-rUx#C)RuK1-qPy9-rFK&>##INOruvA|pu9p|U zR(-v=7do&%$Q!`Hf6cRsi+O%=iF#B$tp2DTQV*(o;h+AddR@Jt{;u9qf5ob>XVo*P zdtv9lESc&MWTO^P+hWXw*1;aQLoD{U4b1bVTdiux_HBz7E|@cGX3LaGwIwNiEY>ZX zHmqB_dgZCh$GUA6%LMQsl5e+RB!j$X*(LyBi*2j0*>-?oDmZw6BefxonmlIIh~X7w zxjs);uHBwmT%K1pth~ImBqb#|$?mZGym@71!}9XW%gcu4(~)O)Bd`C=1Rl>lMvf_lQj2K5j+w=^3LRxZ0TztR8UVY+SF>yKhiAnM9d8kaT&2Dqy zD21La)i~zkxBrtn*4#CJ{#|Q!Jee!qt`%vyPS^Yiql)?^XZ4fGNxgd~rmB8f$^D8( zO_=ZMmG34HxE=0Zy%ICCtfOPxmK$vN_^kN!rcb9iN5@7hfn6``y3AGdgR}i z)&vgLTqvKMkZH?;588?RJ$t0*A8l>_VEX}=W4R474@MN}PzQnC<-&QdlJ}I~QwCo! zjE*|ZEul0=#I4ZMaGKJvG*)*g%@@Hm>YlDNoh|Ayi;<7;sSm;1sLWt~7HLXL?KkE3 zWwiV_O?Ifve_@W#^)i>qX%a$dzQVd;Zl8*5Ul$Axi(mBsgRV4(U?q$SC#wpT^>r|f zxh#f(k&g)m!TbP&aJZZD`zBg`+`e9+GQaIH4ed{@`}n(_(patzrP&9KNjErA-GP&w z4@3~|zYuOi*9M!&y56z(w? zWMd^pfe9cE4D`gQEIXWdVv`P=rWLzYF|nklr+d;p@$tzyx$$u>XMd&_J8>Z5Hg;xJ z!^$fnNXV5}kd~U16gMb!Sk1s0RX2MLX|=+VnnjK;7U< zeQ5brD9usGM3L==^}w*1=&y-62&>gL z-yv-_udO*QE-pDP861K>ac*a3vCK|}?2e-}Ih(nK1>6FlQ(FTI8)b3e>#<)1ZW|VO zwQQIC%d8AX#w_*L+Q&|NaqW#aLY#@4J2wC~L<{EN0{pzaUBY8UG7lNP>>P0OJfAPQ zG_l0EYLJsxtnpWk8F${sz#rwthKA}t?U7|w{))TQTZ>z&TYB4K=Z##ta@mOT^6JBK zboqcG!=AwiHmLJ!^)kl6{-WGpict%AV8w_=1KL(h_#nwad)x$sv9;L&tpZy!ZuA!! z2|3=xJcl#A*qRp_%u;C>-Y(R$JJnDcut9k*!h+C}4*^*Y}@ zeX0|+h3mvTmuyVLbBA$%!xj^w{m3+jp@$`$ z2&Lh+Ik;^@#3}yK#l2!J3Kl8C3X2Vw+l0+(v01lb4>yp4V+q;_`3+vUgd6rYVYe69 zsj)-E-~?*zpd6wHYhHduN-6_AKfhv-3J&BEZMWMU4(c$U9CeDT$yu1vFK<9>*4&H6 zM}bD4o43X;998-4zyZm*Dm5`R#o4daIsc~9!lAR~LVI?`#KC1z;BzRl?V&V(0L^F^ z?w1}>r{Pn_V-je?5Bz)p_=$MsBG(VDr3`emn$R&OCMGc^Ave!sGtiKlWe;Ise5qd+ zFT1L_`Ko1s*Ja0=HA}C&QoYss+cVDC-MV&L$L6g8%QEJFuj8lqHo6S~e}nUAjXTAKUx>66|kEj~UsFI)4j zL|<8HJP0Se#>u70pqo=$TO;dz5jBe$RU&fpY5n2cta;dXY_lk&IRZ@lkN`!SCAHKhDO8I0S4 ze&jM}e5SSp>u&0Y1L9{r^aG90RK7zUhd-AI(x!Z9eAab5w$PkH0+t1sRlkK9^Jsr# zqO>`Zq}`?_xG`po7dD68VY5RqW#17M#T@g6!{K!_C+FnzFy+KBWkNDv_dz<_gm;#( z5jp_hA0Ds5N9HbA&{(V6aCB}&8vy4~XoE}m{GO;4^;($>;%pckf)$MS`IRkjwww{T z4GS&SzOpj#I_PR3#-4XD_IO04zYJrKO-bU)7=3KkWnqJlz0Dzm{MaM1;(7FOg3Njx zeSBrv%%^1L^(`}QTrp!;OUwnm7LHxAu6^;$)0}^n%`LxJ>Y97o>NU5`9)9}RnucAQ zwp=uC#-ia%uAa<&$#rA8tK|MZ0_&8C@=R%n_H>%V&<~rTMex-5bfq~IHO)|l1Lp(0 z{78cRh2ABc*7@&;t|APl0mBCL$Gyy(vi;btl+ta-7S`apu~4lz9Wl;j zRtQ4bO)jur;A2u!QYt2-$%zSE5KeKuoLR-hd&?j_;Q+tYWlHo(!_1jf^0aAGw)`;g z3+0{HiqE_g`>6);s?-w#()A{fF6TctgYh*inh54F(zCYW90aX9a7KVXtmr@@V zFz#UQQz4!))$724uzJCBMTk#$zM=CyZVh`*yA{hy3-L1j{MbFF=YV}|XMy-D;F&Cj z_y@YNE{0|q@TA8CV?4Zp6oln%AYo`is9P8jlXLRoteAqMW4bddbX6FOg2(TP{0R1h z{-T|!Wi8JIbiIz=5neCM#U+i^Zqd&VpALz_(en#X6|ZXcCVDK8Vk$}@zkv{ve7@e( zh7CA(?}p_=E0y!aC(j}+U`lyh$grD;E6ATwcs-^0eJBma!)^okKZKul7z-AHimYYA|k-hqR5`%m9}%*k;fpwHZK%JOZkp6Yv1E*Pp3zUwOF= zEyyMU_rcqVW^}&TD-GPmY8CUT@=Rx4`J)8p^<081br5esDKhEwu`OJbdh0GtYp6fv z=Y`GH2DEJ%Z4_t&W+ZWlbzlppDPi9Em0<#gD=j3BJj#4fTD$w}O?jBFSz>Bw1@V*k3QPlim<*=I`|6%Qv(!42B3Yst5wrc}>Y*tJ+PyFMs9CjjK#lISO98ER)`F1XQj!|}gc-c|X9EP>QjM1DA z`j6`8g~n9(-{(>DKLAgcZttQmZ)dvIbvSD1kj(S7+Rj#39^Qgpf83q~rAVVU{+_{; zX8Kcg$3VSj^%65-+{;tV>3%ZpLHoMcl)&2D>USk2W_y#M@Pi&!M?ew^`lq4kVoo9EZnk5q!L`boz;H9=1mt|uxaxJ1b40j_aCfbj5}2fU$YJ}GR!9 zmgW$ws8Q3f9Iwmz8h%Zj#-yVgggL>{V0~Ce2R$h270l19qvLv+^7|%getz}6ED#s}aF5EV8&X6pQpLvIk4 z#=w_j7VJj``FWJTAyx{N2qPVA_zKD(FdksF6$%!sp;;jnlm)643#`k{Y4F8N%T3Gi zWa9n4N%484`U#1+sVP9A{8G$jS+!vIMM0^#V+IwgHr2MEJ7RfdUZFD~Huco>C3l5k zSg8HSxKCG~1jkwwwav@>9fiZr{O$qxGKIm#z~N&IJDqf0A?q`tmceKS#NNflb?nTslMd^78sXd)BY(<%Rt(*rdk;%_|7b8b00N3|#Hs z`IRLA%V3Jg78m&4{UFlyl{TvaP*MRDA7Em&S***P7@4r>SPEzfV_eE+v$we&%5L}C z!JSKksf5#M;5*>RicZK7NIM_XU2jv2bh#XDm&N&+>%2)9R^-nIcgKX(B1zR0)EM&+jGY$ZViIE$<8wTA zLm@_LKFn}rP!sEym790&+Hn64nb&yADUCO&w>Ga{wI%SqJfmUw@cM7j2PltZtGOtT zVnYn_7lSbX>uk&HA>A-bI2M|~_3o9F&?~uja(qs9oP*`(WS9=Q)MQ_7u+)YfS8lxM z;tf~skdDUj<3^sV-rCl&=8UadKdG-7;s1`yM88`S!TXYgN6dSmHw1PXU!(%e z@wpiuhMh@|4m&E0rmROd^*`LpZW%GR`1l$8w1&hOW&*PzyMOV**f;N@IjhR1dT9v^XAL-Jm? zGABR>NY4Vg4dE423!w z$m0`y*#%lw&c@71TbQ)4JPbl}1++!AD)EvT3(jlbzH(&4uA*xKA409N^%1-EwCPLM ztZb;*Q2*kIt5H14$NC-kIFVgG-QO3}H4)_Y%*seR#3}$%&w*!tend4LJy$JlZ$I(N z@b~+WuDwg+Pbw$Y^JCm#wUeQ2ieoh>>6$o4t!w)H!V4+ii!M4>X03Xwz5T6Kf%ga} zxo(V;*ck-#-NUDc<6AG_8`ZtP80;UA9v|n#2uJvakIyzUb@9U1sr&a{hHp9ez~#6fPxDr)6Hmr1n24|hi8S#dF431r)|!+&)^c!7Xa;2W zz5eSRvnEcRaqh1#b6vGlJ{zc-JZ)w({qDF1WpdsOpGyHBnxiInqgkEi7Sv0pIb!$} z7#0bxdt^R`#dSU8LwZr2&!NcqV5mN1bJuD1iC^n{OtK!AWgV;2h; zA7Z{0?cJVWafs&|I{$942-Sh)V4dbDb_t3O(=I%H&zN@_conM8r<7LJ#YeD&#TRCH2BxL-bynG&gA1#NboJZi z7V_87ZG9h@%x#UNN!In~G~M88j1!N5kGW`^fO;#W>Vg~tO&2t8T5G8_Zx&y#pIXf&ptVz8!RL9Ie-BvEFZuCzS!_;q%i@y=3Xw~RS24f z;xIWOIi7XRmeN$HGAl|g(#H;PKACv@7t5>cm8V{NR64Iauf{&&ylb${_>|pq=k5;N z9oX=~;>9lzob4zBGa2Z!`}@;eh&R|(hVC(xKs|=Nhjj@OGIc`W%d1a2#XjM*s{&t~ zi-jWhKfG<*!+{BbcQhP1Pln^~4LE9jN{C+pMv-X_89qj}Zfkni<6E%FN(_CB-jj?3mgr2L4|Q8wyC z`iz$?cjMi3u1lw+ow2%R5|qY|x{PM{z^+Yo!5SXwr>K4mTo1B;Q$5b@hD(0xOD<2R z=|o;p%j3FId8jLuhkE3ouJ7=>2aLKFN4`tZk7O#>p`Pm)_$%kGIV|#MK#tFF9{PD_ zo~d+t-Z{@~6SRmtyrAC$ZzURNp*msBDC{h_KM1f1>D0KNa35{&QJ>3o)4HR8K?~-7 z;{3XFtmvn%a!mTe(0whpP~YqEBG~ugW9&S$Tomg2a@3vV8AC=0-Pe4R^3=RFAZxqz zqo!F(qv<*zZt9)}`J4C#`tfUqnWiPeIZZ2_yib$~=Ro280L7z#H&!J0Jv7-0xmTHJ zohCBD$rtQ^WHFET^^-6C?stLGo3UR@d!Sc)I~FISpOBwL+pu4y{u2|GwqbKQjN7=6 zemfXxE7$MJqin~fH1H!D9cIVYbq(bKx~L4tDP0EfSpELK;o&%`pA+xUb=VL8*ht>d zud{{W!D*NW-^{QKufJU#m>sQb;=j7=<7Y>EPWoQ`{8+K+IrT$lf&3i(&|modBYI1V ztq;py@Mnar8onmbW75=k2k8uqF0y03X`3H(>VoAOon(02P$xyoROJ<2-4dF2InB<)IAIPSD{ z>z1^hfmOG&RywSy=TCFZ`t2F(@0_!FO;!D68#eD+)?!^8*l_lU@!WpR4{1KB`QZ`q zayLI4orcB{o#wF6b}O?C5Sb>(yTa21{cMmA@b4puaRjuX-z7gAo&SD}A0{sgq*dUN z&tqNGA*_t?iaLJ{9A1)o!8sfD{zrNSn`&HzCttA~;2&H!-_^I^K=% zZW_euiF{IF=U1dgwGcM9*Ih8_w7jfyN9-<%G!$OHuzC9ILGA9D(^odG>#`R%K+jvr zd>-Qi_{1@+;RVsNPOcXB`-lQRMkSJxO&BeW~qy+t^X{ zqt4xRj%(9t)gwmK$bSc7*KHy=lFn}{^N?ej56Rmj$2Ly$8&jG?a!9u{x<81w>i+1& z_+h3B>JLhjfjyoQg-2Ytrw=R-Od4dH=tnyHHjuI?Y9jNRYJ=kd&nnV2?evGhl|x>> z++W=i`LiRQlYq-PS%QYTR+w{=FvKKzl1S~HC=%k6a><;N!kSg6=OJZ-k27^(qTFTr z-7~**Oqogu}`B_kAS6cLeDZekH=0|Dfgv$JvI7`t}e&x8fMM7*O(E-Blku$T?&3sS%@EfaddCO#hS8^PN))9qGmV#FGB zC_RkTD$wo+Nt*l)t!+-5f-?xTBRYRLW|$H)dD9zUdqwQ1XnMgvP$(NM)!T-VZ-*xJ zP+BkrFTY^JkjTp&K$t*7Lf*fZ!7w25PVJR#P9v?MELX-NxOq| zR3vbeVZ4AO0izS#l;Nzrtxqp<3$Q{qI@@|9;D)on3FVdlN4|$1 z4!+hT-0tAD69(bTswyF>>Z<^yL&>d{+Os zF_ZFrO>?VC29MZQP*qkk?WX$r(KVon>dvpQPs0b$3uTMtdz_FiL*o?355O}(@rlDinw2p@5vnNlUJ+*#F{Zx`A zvN8Vl1-_)8WZh5^$(A8qC8`ZwGCa2vc-@d5DY>u0mkpt#USH?;pEYsuxvs75+CgQcwY7BcoYRT7>AHZo!5XT^$JZFYrHM~Rroo!$ z@HE^e2e)YudF~YI^+IGli&!rN<(HMLvv5fl_N8c|Y(ozffq4r;O={u59CA*F$1jWn9c!c2;))xXzj#X;LhWy`nt~Ak$Vl3?pI`xEzXXb12PcA=vE~ zf9l)3*8}EQFE*4EhJ~!o?9s=z`?fXrmBnYGUVh%Xln*`XxO%=uUomCp(&&l6GI8> z54>C~7PQuI(kWtx9J3!!agQm%wY&T8^v5=k{R{gS;6w!LnzL>DZ_37OUn^?Kw+QW)h zP_gAyP;Pb;{71li$>jwLbh5I9$STSz%=O{r{%P#aVybvWUOv2x$!#DNe#Y8ZZg#|b zVr6yt!iE9kl5G8l-F9Yf(dGU6Zk;%^;(`q$>l=qx`|GP+we8L0*VN`_%TW^wCT9#T z%*gIPIbqVRleS;AeDc@{Q>L6U9!pSYj?*7)NCA&cf#w2pP61^;gr{vz@EvKfqt~#0 zREs!3JS$ut*k;GxQ~gu>VQk@*}JEj{GZRo0;%(u^co+$ihoU>cKb-ye2>6q4;J4a@dV zbKQganPq#fmnpw*qUQIt$|Tv|DD&GM(xg}*+Z$=V>nRP%_C}h0Vupr6SltO9pa(P3 z>=zFs61|=WZZ_t4x_yxUDGkg2XkVxwy5M&J^RP(yU$+x*}j)}41 zX&7(I7;g)(C(Px3cc!%3vkc!svUUy)BC;EfJJR9=B0C&ih-`0j(ONHFq1^@)A7FzF zG^qPK*qzyGTN3S6J7mVx!a^Ym2Nw>8%nmoGoB|?*7#@_P5keFzX%D2~su?`6u*+&1 z6O~R%CM4$!N$;|q8dMYN2gu?E{Emvo2>9`ieR3jrb|Tq|z?yljs}E`=VCsA;MkXjP zz<2Ff+Lf5?3wfYG0EQHtOe?UpAI$t|)0)Q2sY~y7>Zu*_p2d^uN6qTnf6U?l?Pr$N zIf`YSOi?U8+>=VPGa462e*$H_p&GK=gHk!7gzL0#(XmUgyGya}DyfG;BhSkb- zv$Ubwdgc}VE%NFg5PS=nqec$30y41q^{|rQdv8>$E4f59Byb??HS|8s*_e$NXTc$X z*mx2a1t;h^o8je^XDD(cRf(s6Oc(0PHrn^(#~Ej4*HEz>48P1Af*!NJPNqHw$b?nI_J)KeNuRw$o;h4Zgv%gPXC{u0a|9dZKPH?44qrM2GdcpS6=+XiZ{OM~6x} z@e%T)v;iKAbbbd#5%-m8-qN`rB_)zRj@BuV9-Q#jH=8EKApeiNCd^GVcm0FOaBpJSc7!_#0L>-SinNOhp7TMhoYldMprZ7tZ> zrmzWRqrWWVG?J2%lAYqog{}tlrw?5$0%OoA-Ev)?peYu7G`)z3)*WA=U zTlr4BHm)gHzQ$i&el+}jxpT6CcREcsyaUZZoW$;vAHY8|$DbYJP~-y-cEd9;rE)?G zCKKZm$t@x`U$2;i8;c_m8#!e+cXSN6{i>&4`Pm;!C;l2Nrm^IKmji!9qX4_%@S~)> zy^{9Sr8S2);Frrpr0)+xbPCQEL8rq(ryrb1p*-jX<_mSWva5pwOnd>5qvvOGUhMS> z1QPSfqbrnW(CZb`*hEa}kn>+?Z6tD6AKazuncO*)>*JLu10D0xSNcBXeKXge?qerT zOxUP8m{els_5u3UVtM8!G7L~MUSk=19np0N?9+ib- zM@_83HY3I_^{=is@sv?$2KlUR38x?3HkL<|#K;HqP^JZ)1nQ|a0%%TfG)woVaJ#w< zbFB}W2D&Isp%x_1s%lxV1v;Hk;PA^UhVwX=Gk(nEy1?5;T~QCJ>lj^E@n(2kb$i0n z92WDsrvXmWypZ!@oJJQ$dG~-gr~A7=t`z1sx(-K0Q+OJ{s}k!lDSk@2=y)JbqH_(w z5IavBYF;o9vWWpyY$VTPNswf^EC7y&Jm#oS07fSB(^y~=wnb4ADoAdAS58iRVlEcf zWE9(&0R=^gcmt1sL2yWwjaax@R#h{4%UL#i^4#iaOD>%_A;T+6#*b~O4ZNe0mXuYm zY!BRf4d|0}e`Jq{Si@NqZm5m2hO=wZthbOc&-4GjzP@(-q$WO(7&E%IcJ%04S3^e& z)NzeCZyB|0W=l(JYs=JD?i*bP>icG+@3oH7Y{QF8b6CvbzByT%piVC`%{ZR7>axBT zvvfYDaXcII;C#kKq~Uq+GhDA=e&%^F*UOaOH&OEgjCmfc%lx*-G&B#^X}$~Ej>76i zeMR$Noo1hb|0*mE)t&I4>Q26Vs5|gK5`G6nM|AkHe4+C{E^Z1>W8lj$bvo8iV82j* zd4fy9t%$aJ#7>mNF;HkxxX!2_xM9DXe!i^!cquhGTxUdfeM~x{F5A>tR9{*RCfei& zLPelbs(Vx)XKd;`&nX+jQ7YKpVcdtaPl8h|*c1A6zzS(1U}b){Cs++*Sn2$`!ODR7 zFy<#Z%~3Hf9G+47eq*h-Z_gLb?nMFGi z9_n9MJKE))){(Qc4oo0>>ZY9Ke%)y!3Ij=N3r{4r!tX8w50d$GTf4yw)rbDlawBlu z2OUbeczFChUT{}8)<_DEgx|@8bo$3-`~!Hc~ocPguMTPV43xq_)#uVTC?ozCEU+M*N8qt%}^WJpd9_DCxq zQa-FCXK>D-q5^V9C-YoRUhgnmU=x4YtK4I1uODP!tt$BnJS(!|Ef$}v`h^$s3TJmiw~nSI7iD$bd>U~qBq zV6fq-vxp79H=?1j1~fpnxM{G(Wx^jPOYGXy$83wsfG!~@641mzwP6HM7)OE+21Mcnk?H)No}RLMS&oGUy55P2iCKx6xk-?d^b{i~R$w-PB}5RRM9?FM zOm)>~S?vj}!`s%ZX&c^}0Go#_ho!E1WJ8roT3k|dHZx5~3=EmWJ1K&!^oGDZ0Ooiol3biE%{f5W^+!pj3 z%=jT2D)n1X4yFEJCf%*yXfhGr-tcsh{nquARd7bX=?3S)PUWM1%k5GmXU3VT6Eu{p~JPUs%Ge-6ZO*7;xF+})rKm_Vc_bs5$~gq zs3*Al8rCKPpB`l?sHl7m3V=!~6|Y5sooM(ZZ`qQOIl)~}eie&O6R?3=BF3kwIAk6k$X ztmW?66DRvTzD!r2QKyWbHGMqnd0CzecdxM%CeB2Y05jbtg4yW?%1zcU?i5VWaNDGvE6L!94rg)OZtPr{PQwAEmfLbqKt5Q^?5!ljrugggLwV^r1PSqi`X#^AvOZFeTEZLdU7xf6&Q|Ct7vrC+?vJ4iNA3^8y)!lL0dEmA=`gh3BmC7d5)k4Ap6~)*0i8M%Pd-~h z=OaA`inQ-oWUgpUQesYaPWAvV_Ql2iW?f7!V#zGFW#x@#Lh}}1?9!O+i$*RfFBw!j ziA=4|%CiQVR7oM_c-4d)lubEOYXmDj?O~8%N zA^7kbA30q;2%7+Q3xIR49B09(E}>^&bq?)jOMDM|P$D_}5q9R0IlS@%nI_+5-8>1}aU=GKc z6>PnCC(3)6E|! zluuV#!MSnx7)S7-`Km4}IA2BN@{o@x*V%HeP9tcIGITn+?gFt&?+vDKi-;_4Lkxtv~e6f{41=)v<{ud#8nQg4@h<%4fUEXPH35;(*v1y>ECj)<|qJX#GaEUQEKXI*Fy_XWjfCdOiB#!u68D4$G^ zcr!5w7z>GUVn#$VIj|JgLPS%DwwjjaDS9Fwj<5y1=y^sIv^5q!FUbrPn(%i8!)WJ8 z@V5m~!nUAKkR}4Y=68F7?+S*m&c7Rc4ZL2#b9S93IRA{q>vU6Jz9+Wneu~6vp0n$| zJSHYa>B|Dh>`5X|T(12{6TRRf@b- zEp*UCmifF7Tb5ew#v&dg1s)LxvM)3?j&1e#0W9+bS#-dIw0mCIQt6)jcY|Ch%)FBv zjYWl8T-5^{Ngtr$*sVW66Ikh`;sD2p_0lZzM_VuLJby;6%{OD` zL)WOJz~4JMWZ{XAh@ZnlQhlkCqpX)E9XPY`9@k6fQ^*XT^_<#FTl$FYwdwYZx=lNO zS(RnYtoWr$4t%z2my8R1cF{#L?! z5B7HJ2FJ*yK4`xU?XLtJyRDTbGZTw>!L`zf!L`ybGU=AT^uW*Or&v?xU3AZr zSDv0`O<%K1!b|$HoZL$Tfe&shD!LK*J31$;UdTT|4Bz9jVa`UAHkxh68Kc@#e=Qy|`;ujxD?8yw}sFjhT8% zdRDpoxKpfHA;pQkV`>QAx_pB7wFZBAG#my|(i}2;P|WnN^C5WaeD;aa-QXQ;E2kko zg?LEO>Tp0Tja~=lQ#$|S#(ISAbs)OXX^uw9`G7YT;mDVnE_lBf+<}W+*Scz^4~wxu zd_1-&*6XTyRW;UBCjnu%8bCM*|KFxYv7Kh+yfFXOay&QfKWW#8d zKg4|pd|X$R_q*>+Ro6&UHN9%o`>1QwWfe=ZWvj%tBzL*nagP%_iQ_mX#R&n@fP6_v z1423wLN_pI=Z^WbVjpA!7|@a)%lpBDAw6W>66*x$i-MT8k%U!qMx_CcgJTk!CTZ{K<SHzfNU}W>e@Z#Pm zUVI{X&Oxn0c;au+&+cmaw zo-$^yM>({|>!R37_BFHzKZT@NVv+8%-MlTHT??Afqlr2VfJQp@ zQPv+pF(P})@pcH7)E0LIq4s#1Y~Ci|NPTrPv`KLMGj)RZg*_1eo!}@^d;efx5S&Um z`vKMw(d8oHE3(j)8bq!=9EwXhi}J#;Z-`Oq2bWG#nG^j0;!DS<$7D1iy9gyQg2zZK zP|t>Pl<9I_IjopiG4gATeWuJu`HPeWY{A~+U^qCv$7DA|uEW>UEx23=3=3+Y$l-Be zp^zMW8x0K8M-hhX5@4&Mv0w;I+;`b!qj#2-7S$-A2;Q(|OHNKkQ)#V2nKfEpRuZi4 zJUFfygf1f0Xe%l8y9dUm*SuuQ+fZIqTzk~l*Wk|8cJehS!;bid?_g?3KOxibMEks4 zhV&D1nX|B!&yUsRWu(q{nLozLfHuYAZ!MhOMeE^v?dN%$vHFN6&y~fTCe-(*1?!_S zh}Dhu>(8*y^L{0@No5eL8!hv`uif zui$Hl>fti{V+-QP&ttL9^I)Unys=#W+rmc|grAPf-g22=3oXfIU@x=aycq}9aTT&c zJ|!-wOkQ0xQ}i|IXA>u|-4>W%QOZw!G(-tpcYpDwH^;MR|N~ zsjIQnRnz2~i!-zG;Nc%z1;8RhM}ZmpkpbGTxDVFVDj-h3ghs4qF;I}6W6ahKb@eX4%wefZcV(L` zY;AQxQB`$eVHM^}hBML3|A^AcUQXi@X{B6-=#E_GKZHg;UvYX9pRcp9m39il!ncsL z8hfJ^DsOj=m?{*eimEgP)2fwG>Ax8wKC*~1EF8qGz%VzH$*>+ z?ahtoc}+!WLB7*rx8+&PCWBs=m9^N+;=o6wDX%ovRQ^w=IL9{8+_Gic;SKqX|Gl{` z$y>4FmJ^Okn{ZI5*qrm22zfq#BRrivpRqFB$67A)GvQwD+fQ>Ii>;F7s<@mUldGcq z63Gbi`i=-w3(x?PO-SBB8Ilnw=M>r{o*c<^@jG~S>=OqVG*nSuZ$|>JcL1j>$H&6u zGr6C$f~=Q_<0k5a{4U(<${G?E*q%WioVPAMW=AMs%3n{b1k_)i(3Ok>5W{X;G03%8qz$9|75D#Kf2t=@g zaZ@bJp_HSTTPOXr8+x(ARcaM2%f%khk|T}Rlk4*6c|=#r0#HcM1(JOk>OnZx#0UJ% z1ic{F6yCo%A?9mNN4Sx6hBqJt3^a`Jq=MrEomO#J#)cy5CX(^ftm4G4)YxZIW@40T zd6dyGoIC`J#YaV@Q>Kx-AvmyLVFYDaEb{RdW>b8^3>lJ{7{2bhvHD2h8oR2@;nc=yPV&CfDBuX`jbCQJZg?0!Ff<(1>}5bE`F2KEK? zf&30a;_IY$r|beSW@`}Uga}BDdK%b5$w~>lKp~3GfJ4Wm7MvRS_81I;K(Q!@9oGxF zu&~33N`Z`XhJB>r!arFvkQkD3e`spz3by3PcXCbbJKn`6Yxn!@jZLg(!^hL_Crpq0 zyGgfET;;M_U33w?Q$IfjJFth&Xib54DOUX?mWwsX~FidLorATS=m?IEnq z;T_|4|Cq-?lGg!FIgfYqktTHQ>+nG^np?KFHoX*gML^H+U-m{I3%l%=Amgf+&!HL7 z(8%M)XHiB|Y;_{|9m3cJ5zl5#n$omIrGR@basD{id~!H{P>YRF#@%x4MS8(Z zkdNXnm_~jki6j5b&qY0BHB2F7P@+5XjKvowe~Eg=+F)}8(+C zx*OhSA{(VCU9@D_lXzQFjuUeY9n~hPP@?o;N@*B|$WryS zu|Q-Qdu-#z$ZuRu)u>X1E&%S;$mi3Dh`Ur-dkKXX=iBEc|Kl*vNz-Lz$S}vbU~;k| zSuCo_&hogkvnrpz{)WR>UVrNFQT(NR{fVbveCf%jU)&8~Dk2|7&hatBdd*tIAH)8O z{L6p=*g75?3q2#>C9-v{*vSgS9AIyH{_~#J0p;OqS!Alc?wlXbz^_ZxV%^vT%KsM= z(eWec>)`bUJ=`Q|)^LEU*{uuEp?)JMi3wp6!P6V_~W^Cl%tX#Zo<(C zf+aXb;1!oJV@khVRm@56fs@LsrH)WtTT`gNwYsscyu4X?OnKdotyeXcH@4rnUwdeC zO;byCZT(bTNl8^h#rgv?6QPyaQs(M59Bm?!PG4M!c}Nk`3G34s`U?^u_QMGUga9t} z!e(@ptA7DVoSvPYnhvDXaUXA=tD03Jf2fBrQDSQ%&$6nIA3S*MI}c8=A4V!SJ;>5o zbL1t!$N?C6L33R~SGXN{)9BoCWQ4-v28;+qSHZbW#0e-fSXq49xaA-bL@vRJ7->pJ zlnf#{&Lt7-} z%-kv={xP1hBrgxngZ@09%Ynzu(Ei}CM}FEs7EbGlI_gFvyXBt7P?EF>FW<I54Ufm-Zpi1)YcIbAr7Et~7w0r|=idQDJXl z{ot@LwMtBFG(}|qAuJSkPg#j@+F*XZ6-zn4GQXmv$QrQv-A?koEYfo7LefxFGb1Zs zqL`md;dKcrm^TlFhuUgdui3uySX)i|VB5jLhOV}jaBEjXRYPqkRNGLMQnk9dbA6^V zdu84DrkT;YmD$Ryb)DhW6+4@%LoF?#>L%7xTU1h0Q&LomHBtavXidZgC1Ee@^4J}q zI0WfZN;7j9fVCZ^p7}_3wjeGD$ll|E%3jVznvlAo21#rP3*-gQp1Cn{_Cm-YzV-P> zBik0k1`t&tA8|K%=sU#<285n)Css5p7)oT_LD-E_g3~oZYp}y&MrenPPYiZgtCeC1 zdzqMSePOEG0sJc!_{K&2R-n*U&+zN=2BTR5Tn3C`I@Lcdt=GD}MTuiVgGb zm1LE8-A;!sFWSL{W&^p5vC%b)(M_Y$Pk|hm4t0j8*C+M)_E*(@x4+Ci5bhokN14ZA zaRm$WE0U+?)BQOvlO?~-Th}?zV)xoD)*`#Tq`gR&G(UC1M0iv$)5$1Kk!}#m^%>xy zMlESJk^iz*rJlh7d5met>6|Ky_EoDKzJVrhRX$wpNr68=qDZ%^9|TeB(p6S+guzTx*$&gU9)>Qx+I@h}_S!JrX?6v-Qb~Yin26%v0ak znKXh=uj^r|$e-HQvB3wD=BkwD$^`Q-=orKU>KMjD2#D<$bEUlaT$N^(6cq*o9vAej zkVm5@#V$Hml*%#?s;qX!lB!^;7Mh{H8aT9f>{}-w4V%_n`naa!c}pf&A;QZ@vyU?fYxk5bwO2GNmei` ziq)3_D=c8(v9XdfH?$)xN>!JP^)~vdp`8yFn|+{v!>udERxY�xm}&;G7S$#y*>= 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�I5}bK5}^5R-7q~ zDpsuEu%-Sa)d40CZrp&Xh|NV5_v17+62au27(rM)jx8El07CuvIU7Mg zK&SbLJTxNOnjl+~sYim@nuIVEP8ZU2ZXFq_RXIhf+U0dqK!$fvDpYO1Kfm20u^a$^@c6v3aSKslQyq|2{SsT|<5P13M`VT@nsMh2mf{kxxiNYoc@ZL*X6i%dn0Y@$tAwzsCBrv(%EX zgvP*Uj!cY981{H6tbos$EGVMmQ6HVaYKK{GGB9sJV{7+-LvlHCvUQr)l!}6qR!cLQ z;{7};JT5&3S;EBIN(Z+>3M*oJVza|7|9TjJ9cATZ7Q?g@9>AIBpG%f_RFMlAEK5bsK_WC29Ku)kno?aqXn&TcOsa z8TxvZBi2>- z!L~JZALq}hnF}+MD^&Bb7G$QuIh>{kH{lFVawFH;t;LW9k-WKbg&d_?j_m*P0(QW7o`=~>DPAF{-wA`?-PwVMuW!O*I*qi<@Q|1Y`$<7(q)cN z&)Y7|gye;6dEC!~hyoLjVQf*sb((j8z?~!L{Q9{LV67ob1j*!t+c?k0b6I13O{>>1WdtHG2~r-tSia{&A5Iv!hmahlBWxdXk3aIc`HBTK@yk#eW6S%NC~l9;dXEE&x*r;)(<2qAK|~kz5NK z2a}c|c?U0}6d;H%R){C<%7!U7N>J4xs5+R>=ZI+z5NhuT8~4~9?g=*1m9=&Gkobe1 z20PA>Z|Gr)ot&=z|LdQGO*OH9hqly4`{%JI_wRQYqg~h&&eSu7(w+-H0y?3XTv=iO zC3V{#0w=;zq4bOGI!OS9fIt9UtPlsN$$(%Ad51b5pnfhkCJ?^F-lu1IbXhFVS5#3} zWs$*5!+2DeZc$cgy-s^^4jfQqUg`&It@IN#;}%Yba~v?q8sLK@_UqwX-)CpaUU^&v zKmxLV@Nwb%ALu!>5X$KIsks4?ml$D8Aup_s4)DUI;iHrR1kP}0xF`Z5KH?OPLe()8 z0_$6YT?%?NK4fETi#oDm%nOtnU(xBe zM!L=HgT<2L+gbK|={4{xDMD$u2-61jCU#3w)*b^1S8z#D!6ikK=_FaE%c4}o#Dsx= zAx7vUhqrHSY1zWIZJ6xijLh4oVz52S9*@>P{)}9`Y%c;qo@+&cU^BFs*i2s7o>=1i zevE&Sq|3yffV>emwFN!-zZ+T-IwJFU-@>|A;fw=Bq(YsdfJs(@&J&D*L?b3qi$=_j zqaTuD9QrP4n!1RsHn|xu_t=4dAK!1)f!N?z!EnKu>j_j6<3t3N66_@iMW04lC3@s> zqfct?!^S6pm=>-(=S+*6E6&w{lgDO=wX_zyZG~B`441AzSL${ZW!lr7x}db~=(1)1 z>dsVZtQM~;OR2VjtCDH{FuMowor~E;v4L}X&901G%bu8$pAqh7SF)$5t5JFlW0V6Y z1mDLDpS=8&a+%pLh-bK7EQbg2le$$%%1I+`+j#ET8E99L0F>tJcdSc7wqNMfaB4Ib z6ri*qPo4u?U;x*Tw{82%)~(W}Lx&F09wELj+#?;j;5hJ*>WsPvp>_4IW zrRFw}_Zl+JqLS8W#O}o8G7-9UisgyPNh0!~()XC0B8oqs_x%^K?_3rU;nx{0&t(A- zz8lHk|0DWc=JQ3!PV#-3FBipMM!(BEvMBy4`d#KvMe*12_gR^*5yk%-{VwwwqWC*L zXP5`&eYYOb-Z7ck_-7$gdKXb`47CRqAl_w zUT>Z?e)tV!O~EgTe^Q3j1sw=rB7R%Q5MRB(b+P*wcviYgNEIIu+Qk19O2j`caQ#3C zi*%iX&lO#3@cAEctq{TpDlT5=690(){BiajdS@DZzCnIxn%Q@7{af_<8Sd55eSDAL z-Gle<;T_uF*>AC{;XWF@#D~#mx(ZNN;#G+6je;K9_!hdvckz9p>o-EPlp~Z#c3iP{ z`h2m=fHDhRbI%o19SV5Fh&Q8umkVuD5$51a=ttspNU)06E^ys0G{eG^E^e83y(-j* zuSc)>pXqz-ij|@F?=EsBmWh3SRY;fqL&ycDCtczhAq{X=UGN$ga>VI`i*Psb`ZLBq z55E9IFXr_3@>~Npn78?GP3%AQE8YjR#Ug@PxGAU`-3yav#p0eIIB z%>Ik;9{gzELo5!zW`8EUH~YQlbtZZb_h}a)a=b{ycf!f}_y)X*mOm@M13xg=Y%At>{#?ZRjWJO_ zV}0UntKcD{jbGX9d3^RmZhvp~{ltqsi)cdNhv>pu@%}Gd2K38({zYSpwa2bO-)0b< zO66`9Qn0tCNI|Tj)wtjz3Ob!8ejXRT(>)PJ2lfTv(CvZ~xKsxD*%ipGyDwU99OX8k z+**{|g>qM*TnozWl*`C%%ODDj`p56oTSkQ0_XwNQM1;1J=%N z!OV^d*>DIBAU~TI`aUDO5;~YW(B5s)a(htjDwMkh!+|O zorNdrS-k%iwDM)}4{D*FrGXE~6?B-xJmDLHg_+Q28|Lb2>?0qaeUF`({R1yU_n!tH zenW5~51U2!KHmQYc=u_%{~0+4|C&(GYl5G_@ZW0&kr!;zEDf-TW$`cYH78zugbqdr0V&LckTeP72e~av_L) zFDU*NYyB2nPQeG=aX#?6nB!Fm`uc)Ug|#}sueSwlV9LjK9`mXc~=?{uEid~9p z6kk$&OL0bNP_`*Yl9X8_Ktpe?^*Old3>fuewonkLo3L791g~ z)LrUj>hZJBmLyHR_M z_BQQv+E=t^p!cp#=}p<6ax&$vlm}D3l=7|A+|-q+n^O;`-kAES)TdKlNqr;rozxH0 zG-;N!qO_A~ccnd;_NBCMrTrxBcj-d=(1oWS`BB=uEl_UB7Njw?%hE_oD8M?q|B+ z=ZHDEIsTm5oO^N}%Xu;9Y_2`GEVnIpBzI%(9l0;%{xJ7fxgY2idV@Y+U#s7&Kde8c zzeoS1{+s$A>wl&Hz>sFJ8_EoghNXrzh8>2(h7*Q+438O}GrVGW!*JH{d!uN~H9CzI z#tGv_<3Zy|;~mC_jn5fhF}`m6mGOO3hiSz0vgvix+or#oRc4cUhxxGiQSQEbmx8%*)90=GEl&iK!wYGb0 zzp{N`PqFW@AGd$p9&zk-{NB0Dd7txX=PS-PobNb4bm?4PSBG4c>wt24doc6rpP4Qa1Mcy{=h zKbHUT{D_P6+{a67XG+sS<%f! z_ZB@_^g?ldaeZ-r@z08XU;JUoSjo*LXG)7oPnO@HpW`X zdug?@Wm|j7@+s?xc75)yb|tN|(#k8zmSsl{h6G1Bng&P%q-h8cAb|TM2QVRo;LjBNJ6?8HJ6AfL&Y-i)dAsv2=jWUkoZoT2=)Ble(zLv3 zO_RH6Thsogk*2ApTbu4~I@|PE)00ilHoekx(ZyUft~D;Z%kMhunsPnp`l9QC>y74` z=2gwRn)l*WgWKH}_hxseJLaBr&$#b#pLIXxe%k#r_nR#hEh}2AEv+rPS|Tl(4XZY| zHf-JS*2c<>+Qy5mC9TU_*R;A@{jHs?`&&m^r#97WI=$)QX7}b>H$S^&&6c~iywDbJ zyT9!PkLC$^raX^&ukm(zKkYO6yuP#k3V+J~bf7ixaBxxZruLQXnfAA~-o5p~jzt}J zZF6n=+_p!zhqk}GzUow-6Ol7>vVUX>AcYS@}4z&-nZwW zE>qXRu8(xH?!DcIyQjKmxFwZ?C;ut-vQHs6$e}g z_8&NWVDi8n2R?n^!hz=xTs*kwpmwnFVC%t=gZCZ$!=e3$ZawtKp_d{hkq65*R(R-thM_-DOSVe4Y%o=Nros8WYdnope{-ynQ$F1>a27+LM#X+mmMxv%`B2|I>A`>-1D*YBcrY@S5QZBUg=laO8=!J3W=Y zKmADh*-_Kz+R?j4&yGGm`l}-=j_k@1 zql=EV9vwM)*U=Xz$z6fQpo&NRo zTc?btDo)j$y5`iXQmEtJ z9P75H6L4^ofkFnlH!2(O z=eT;{b6#BGXRVO6K?AHYpGp?vPjR{yZMcP!LTYa9EU#?qx2NAOtgsbw#)uzuMv&Kt z2k9VwT=FO^#ea=gw05>GF0|$NNk}rB>kZ!Dyrj^k-H>wt{dP>y=eCs?DWv^E2HqRI zA0{9NrcAGPA6hwC*U zdUG5t3ayfDo$cAYU;KH`=_W^DQQk*fmpJHix%xmqYvT#<=G-%oJc>Gw$E}@)=JQKa zsL5Mn9N1j9{|zSBPZPAcZ3f_VY2kg`!hDR5BhMu~4y@>(tQ~|e6l%oB74NI;nA6CV zkUBk2R?dNYbv`=9kjsdk%xe@!eH6VUV+Yrk;|${gm_of{!ZIn$5bD0hrEzF3B^F#QJ&AA0){}3O?~pgCg?yJb&_=qRT1f-7QN#`EAnU1Il5v9mEiHzBq>g}L#2bPH{x9_pn&GD!X8`!qm zOLXEO|A8l!o9HflL#~s!=pM|V|4s4C812Ds5x!L4HWa>38Wv@&>!IB_8(#=;#vC7^f|JN{)p_R&(nXQ zFVKG_KOvp;MY4zf7}vr-p)Zq3`fr%4j?Y(O=Tn z>3`B+(f^{qroSN{BiEBzjJww`)_Unh`dj)2xt9Kp{2O_TzKNZjn@Jyii~gSefnFjZ zGR+9?$=*QT!x$bbH{!J?6FG&iDwN<&(lS=gD%b*6$*S-U<3hFwPe<)#i&+icJX}il zk^SUVwv0TCYxS$ya#l+Y;M+R?jxW2fz*omLR>xK{Gh2l(r>|k}Vr$vEaYbLxEO?W< zk*#M|W@C1olI3JgxXy28Zk*Jyfo){1Y!lvb-@@9Mhk2Qg`B{JkSvz(DI@mUxaIk~z zWV_gI*2(s;F4oO@STDPl^|25OW3ONz+s_WLgX|ECuqcbMeimm5Hoyki5KFSd>^kxo z`8swKhS>;9V<+>k$-V3d`6zbDYRD2iRj>^EDpzBlsTO-Q8Jz7f&L-GVc8pEp8T=`B zf}Ld7vuSpU-N4?%PP6y2_puw@V0I_$KF_>;vqB>_hA> zJR^QL`!M?m`zX5y?<(EP{)XMhKF026A7`H+k6@qjH{>GwBzu5;ihY`WhCRqW%Ra|G z&(5;H#hXI2Y>u5{53w(>FS0MO^X$v)VfGdF2>UAG=aasJtRSDo^En^K+UI_pI{kh; z|6;=TdbY4f+1J=(?Cb0T`#bEP{5^Y|{R4Y~eUp6)ryV@WzRkYFzRR8>)ntyG!@Z*K z;hz5Y3C`sp2T25H7Phfx*blJl@;>Ehe}KKnevG%#eu8`0W>QMdkekRYWCnMzZ^g6lhse*^PjSxC&)CnglK(1p z^j~4WV6WnS^^NQ`_DgaXR?WX8uaonL-PpUs4$+6m2gwJ>r^qJ|)ji}+_By$Te1v?M zd=l3KkF)<|zheKze$9TvF0$XUH`wpko9w^YTkQAj59|`&q@o6#l!V7V@Wcgx-7SMKXiX8I?F2U3a2GG9DB9_{Z>jEtN7{ZU{c$)uy> zrht&q6cB}yq*saRQ!IUog-?m6sq25Y8M>J+w(&4Dyz+I zFKf?HGj5GVGv!wW!c%qyWw>mvmht*cT zEl*G~b+}ABqWu%&3Db_8;#Ql(Yuo`*BnL;pv`eDwDnM~INdiH)Auuv1VZTkb@GCp{ zl`;IvUVhb;{;WM!m-+%lyNA-55!G606v(zxSbo(T0qcU@LlYx|(agkfDmpPXK4+6-e3SGIfj6^6twtx7(C(EdgT>Y;Ec(Xyy{Et#+Ho)LUS4zeDNStkM>hdQ~cH zVhaS6o&i@;Z(gr}Vi;7`31szD`UL_DdgtlYtNOE7_GeLVCOI-_>J`0e>XT~q<<%o^OamcTOjB(g+-Ohs(uK%O?w5ovb{M6tPl;nuEw!3t4(G+ zK9Q;PWcd`re+3Jd6L57$z6(Xcd^^~y=G(!ploEEZmv@N17VT7pu!OxrMG9G?!iC6`%a|cx zQ#((Z%iD9}02YHplvfu7Fj2r+@F*rSRrC9=*|dijw@7_$Rufm-X00xWO|qaMK#78y z`E+cYO0y}N8JR6Z3xJZg}7vh#~-=MjS$^u%CBs_1we z#Zfg7qiR0s&v!~$f6ft2abX-&LI`I{n4@MK;uFbG9>r?9c zT8fj3Z&J-CNfCKi@~~iIcQnhX#U-bf!+91`3`esmCA`{{%9#RFi_e&XaFUrLXd00y zBLyf<5tgjBV2dGHKk05DP=-VDaWKb z$MWiw9?M2F(=j=v9M4zEE(|uAju%cT%KpI?)07}rHkEV5Dlw(_yp1SHCC0|8lw)P{ zr2}w9KCchUXyt9@qdhzM_zN>44%n*lgRh{{C!19!va*Z1s{8;e!1cDs%KUf{c~ep( zmC1P|Dsw}nfCALvLYfYXq?G%1L9JiXuT0M)q=IpwMgfOtRXK45#6VL4#h_HZGS@S* z-SI253(9s?`5q9srW8*c<#KQ;Sa_;{Wf*sedC`&62k2v|=-7}zkrbQ-6aeQaI14E_ za}_V-UDDKc!Oc}Q--}%}myI{x!nSz69-?faK=epuL`h}Nk9pQH zKkKZS&q%a$l?)uh_)QK*%K#k0PyvXt;}RIpmW&@77bV35a*S2wu?6P^Sxk`=Gl|11 zf}!0R6k*!l+$@43QW0#Bir|S!=9wQUO8NovUoCgOK4-QHm65>1r9_JzOBo6^f9s*JD5D=sn z>R6Gc8=98JICslonv*&&at|s zb6DNdIjqfsp4BQBSV-lyo>i_F?bc>R59f;V&b2CMvnpq^Drd7wXR}&8)~dv0e=0g0 zPahj;?2nEm79N>MjEyJLBe{~Lqlrv19p}3axI&AI6_?M`Q!a~zrF3mC&O6Q8-jt)oA{sa%H;L!2WAq)_1)bhkgoX2X|Dj|`?_Aegl$ z%Hpvrln6>(yG5cMa3m>SR4Iyb7*!&huNJ{B;E+MiXpo z*`$ZtY>rayZ^KcDBrt6@H3qyvV_+hamX3@qDdEu4@$FVmHm?SVr==t@JUV`SEHPdj z&1BNYCPpz!Ar%sq3XpfMgt!(GilxVg1mz}Q(8QI^wQzBF&m7~#N&9)Vqpxjd`X32sU&ILp1^mWl#`e-6wYE$iP-U_V5Vu@7x zSiaJ(h~XTsxfhpKnD#TAYN&m1{0Jfxr;widuG1+YWG_5yqkXYo0l z#pkd?%-;@2lki=YX)esT3o=%@k0H^la+SNVP)p&P{P_=x_pGX}aGUN*MOR_h9zRxd z>CHTuV-5RhwULYm&$ ziK4b}t){y<&AQ?a}kqq@QD)FCwvUI35k_v_2eG8icht^f7zG z4SJD93uwA=brd=k`#M8J6mCSh(^LW|E9$GjS^C%!~c#8sAA#sYdg>Tl4iEl@$z^eW#rt{DLIkY3GmUC337 z{#pn^)xszmY|szE^@YBOHWShGg)m!#zR0q@Cp2q}`@^gB1qt(HgTC0ZeNSk6w=Ar! zL-}G+USpXhi+sJI*+q+dI*oeuh4p;M!L_`zRs2si{^)cm`ogffGc?P`AzFp_y~7@D+0{&tkk@2t1!!daZqV1|)>I@vsj_l|`>EV1AQEDQ96 z^hIW`7SJoMXEP)pS4=__4WFCj7J-WLOVS6iUZOdb(?u$|C1PS#|GV=?c&)=Q-FJ%Zd*57 zM3)3Y2#UNH9R=ojI~=D)YZ8(-ftsWf_~S5v=yOGBc{y47keCqto6YW7CtbpIb-^A` z;EHV`7%WkDgWhauT-Ms4yZ;<29J?RrE$AY$bhXx~weyew({{|vw42)zf{_ZX1DX-xbhSX6tsq{#+*hBNX*6qE>kMdaoR6k8N_x7yo z%Y32ETFj|hYq)XNN^3A~J@ab2YCGrEdgs+<+ZNKhyoJxAZ>TRs$TrF{^jq|e^)qlk z?qf3;>2D_+I)ey%{(=EP4x)o!p86m|F{C63$v{mxVjDz7uBNZJ8q^2%r-H z<-i`x92F&907OYQ$7x4Z569s^FUR4)wH${7eU@{GhCV zI3DF?`#GL~4sbjH9prcdI>dPffEM9AIS}PMIS}JKInd8>wgQNA91bKn4hIG}4hIH> zTz)`9LM{#^gD??rjxZxZj&O@*u3W5abyMvej^zyCq6u?Z*julcBy_{7&dKbA-av2x_(T_$ zlk|4Xb@GyLbe0r*zd*>k)Qz`c_V%AEisLvfKVL3jKoIgjF{Zqk literal 0 HcmV?d00001 diff --git a/src/fonts/mona-sans/MonaSans-SemiBold.woff2 b/src/fonts/mona-sans/MonaSans-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..82fbcedcfb67f3fd62f345ad6a113d3e74f1d357 GIT binary patch literal 60300 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 F{{*C$z_^tOiSE!7GC)O<>aUPp-E6OA*f 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%0D#ONrI$@NfXatr)e5rzVT_zJ^d#^Nx{6rfV= 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 D!;J-O literal 0 HcmV?d00001 diff --git a/src/fonts/mona-sans/MonaSansVF[wdth,wght,opsz,ital].woff2 b/src/fonts/mona-sans/MonaSansVF[wdth,wght,opsz,ital].woff2 new file mode 100644 index 0000000000000000000000000000000000000000..576f498c1c925ffc18159fc6e72d0c5fe795c600 GIT binary patch literal 529632 zcmZ5{Ra9I}7bWg)!GpWIyE_eyli=2G)_a~?h@SHJ-8E`;5M26ZRXU&K5`$b z)+*a|&h=K8Qf`UTA+kwLVhj@e6|8&p)`Tm*zzYv%F4kU?bA|x#&MKBT9(w5W? zVWPKziX&yup+E`Aclh~N5H*e*iX-RQ1)2|r1~yXwjspH?0}f&~yRt;&n=U$e?%(BuJC%V6^3HfWd_!ZuIAFV|EldrW+9c-)PAD{n^Y-N0k z93JJnOZ#5=In#k?QqB{hOxMP7G_bJn>flpjfN-|&O>9vlRAb_;N43FckQY8c&$m?6psHG?-n@J zE6!~qj4Z(3#oN@?Wu`3vIZFd{cWLf@Exzy3>)NGRl}Vw>BEoGplvJ2k%w+={1iZ7T zc2T~E5mNTXSK;A9F@`AoPIMElT>pW54s~2A?JEgY`(J{qiQXKy6*{snJx7F4wA%3z=iWse8(IujH zI?0tG89lZmrJ^pNmS*eO^m^o0#OrYw$WV3|5y=>aRY#?+HAfuQ<^9=yE`T=SIA%nze0MII z!+_!O&d%6K=jJ8?If8YJBW2D&^(GFbpL^hx>K#U2dcL;bUBG7w{soZ;XV5x?T9!vn zjOc?ka=U#0W{;L6BB5n=%7hHtO^ID&Vq)X35~FORS}nvTlFAg9|Lx4oE$dd_m`P)F z$N~Wf2}!o{_(Pg>10EP{Gx@RZ8!CGcVgYIw%k3V0SxcSpFbMz#Tj3Q^!R?-cx+^zN`dy_XGQN|r zn9~44j_w_X>0Rcd6!FK>HFpbHiAjVG$i=7gPnI>$Bu|xbQiwV{v@`(AB3%HkkI8X( zz~bm=;#;vud@b!R;dWV5uUvZKMG7Ox>^F&Ei>`%375p<#UwgNvKunf{_S4UEMnT$z z&2Rn}*sDO(HcnDUE& zb!2Q|NDw%m#77lfvOFk)M4N>uB>53xL~JL%$ZI7fqV-XY#rh z>?2Dn$%wtK9in7~FyfRP7vG#^@%C6$_4(*MdMxIf_iRgtm|qvSFoMdAauqU=l%yrn z{rs~8pKa#HNzq&CQ{a}u>E-}{QdUq%a5pOb9HrC$ptxCu?@0{vHU;gfGO?8RM1aXy z060~i1kgzNmBbhjkA@M0OE#N@!aiL@SV`1XOP{>nEI{Eu7E=E?Yp?UHC$6aETfS%> zZl-LiO*`S!vfK;yLQt7nz3NkG4!ES3s=?|+N*a21jbR`jhbMXB?)?OL=p+vu#PD6$ zxD~!H*S7h@W>4F&(&=(;8nrKdi@?8K0Dr_GA8xGpphD2`Qk3QSPn{Ye4BH{za)+UG zzsx#;VDoSiJj3TPZM%t5>*p+H%gZ)aeG;dtM!9d!tJc-B};oUf6!%QCWkbH9p z<|2~u)UlT4D>8Ne=-;0L;u3kspX@?YO+8l#Wbl_Nu}beDYE%}AezzMc>FP+;Vq=!O z_vjs&kg;y@$)^Y?c(?PGphoCmr8K6fQG6=+`e_CDa$8M#+WUus=_1i^_dI>QwGdHP z7iza4i+uIFy<9Pc!v^DSF-7IB`tLmv;=8a<(gEJ$3^{BNL^}LJMp(aI=ew)RF8SEe z#B>05pMuQ!x>0JZjxO7{UTUR+F584`b4}o4;PcEKceDEy>zlBll&adIuk-x56Cd3mQo2c@OdPmK5^8*?;%F*lb73a$I}- zE&KGN+mRBlJF`GK!V`~?Rh4yq_`t~hOZ)03R*y%3^-*-KZ9{zr6|27zwlK3dMovXP zqgD8Sda5Z+H=CnbB6A>0@OGfz)glc3h?z}O&?)*$(8o?th@%mhD3}$c>mz{EQ!VWCadBZvl9hKDc8Q}UvOK0r&|lTcKx!POSeX_}qHF|=sM9NQ z3KsI6-w#s`uDhsv*E|KMqST0P`Z&YK81Hm^jxU| zpLc2(orO|Li3oj?!Zsr`W64tu789hfQhPT(Zns;PAFM&5PX@!L4v}RGrYh8V$L-$y z??Hb3$~2c@;pQ;(gf3FJB9r?kHzGpl-$!!dQW5yVBmFm%sKO0|?8cHckD=fKKk`5F zw%3olK$tjE7LvQiG$;%O68%sIw@}}8KeuZey(OZfQkC?DMp4Tg6V|C+7pdLgPCxHD zo+6JGUcIFt8Vqj=PmlUv6uL7OBxOSYqbSGmpCOcj9#EO+?dCGM3Mz-^EX*o!;d- zDPON!TCcX7i7K9;6z$5FJbqdo-5}BlQ%#ZzI#y z<6-&Hk}P49fmi`CW1CX{v2b3Flv`dcchx>;ZSP_=V9nr8Qun)#Har;|Pd2MSn%h|o zTLcFPW5&9ITW4_-4(h<}PN*!HDpQNJSN}zFAV5Ex=(Ij=_#VFJPj%O}Vf7+|D}3(@ zvaNrPk=oDYG)8nD`zsp1f5No?X|u=V;1_30OdX$$f_Z8kefWHM6Hd4jd65wKqCg#g zJv$tZu5BEqPxJ;`rLP_o=4r1x3QX?h49MK&UrbaJI+cK21Ilo>mu5{$c%wMK{<`}5 zOFctS`#&#$SFA+vhU>QKg%C zY?9`5+JkCachaEdB*7l4%r^ z6(ea68`3f9bK1giGuj4e*<7QQ_y4Ib{mAr#LX)slus6NPHxhUMYt&>}h*^llxw8t9 za$F<-V*jENznzAW>G>>3V}g7hUY)In_i3E`Y{(blu|0p8PDrctKt@g=!uheP;=T0u zlGq^Qc%TLgoYbF4gt|K-K1lh(<)S)XqG5y4Yl21ZQs-w59b0|>OZWZabDJ9{`& z8PShC8VxOLG&`-SY8?EnVHh^=nc-=?pkF^UU%{Q6kiMMo5vL==-^4`z)qV znYubicL6qMKS`d3reB7pXWJd5ZBN2gb4zyS5zwsPbpeCHW=-5i{~#GRjR{zB5QdAN zmg8~#(U<|sK7e+^Y%Y>UN%&L zg{tlou=(t~Ajg0ohr@}}fa8aX)|bGqLFFJ@?Jiqr4O;MK_%8>CgjP9%5>z%(WgPM8 zb*_?AC%K%9R~jZSq^#?`8T3^<%Ktx$RL@D&Mhe#4CT5Rw6Rkkw;s|E6x*a_V7!^`5ZYh;N=e{TIw1;Sjw15W*R4yNXViegOj}+_U$$ zIpwfKwT1Eiuuosgz(e^!>f6(H`&oWIEcpnt}pBl-R%2kBk+Ek*ZaS)kQ!)zxcLwS1{;Z(I{ELC zAf(!JTO+A>xF189gVLMupd{?e;f(m8x((ra4xyL?CvwQ&W5y=ldb(f&e@HC{eoG56 z!&9#!IpKgtZ+!gk=jYG0^E*k+&}-bKEce%ghvBtqKx^?XZIp^&J}IN2#Jo!71dTCW z_}4Oqi6nvxRH?M?XEBKfyEnmovJy>U9mng^KDfydStRF<*JmTkPqG4KfD8@Z>gJmb zl8xdoy{T@z3XhGiP!EkctQ_KhD_e{c@vxIGcP{cjVT%}IU-X zcH(%sqJOS<@IRB`?A!X=cj%ckau+ADP+G5QO&mQU$<{wv(c*fWp zKI_FweiH7fM%;G)(y2n194$kYq(X-~_J4sUWz2#Kw0g*f8~qOz=)6F`581qlJ{rls zz*A#Rf!y41a(Lq36 z-W?)1GKj9kfML)mc3`4AH1Xd8ijg=h{rUPHXwF2dA!NaJ_I<|CT}m|+zLnz1aBeW<6H@usLreB+ zJ0NN<_ovk4c~pU6wPvk+V=#&;j}pW!B8nJz0WHs_duc%a^!@I06Za|1sEIc@O%Xc0 z5?f)SHHPsD#u5o*F}SZw(C-JS^a*a0s8NTy$UL?~+U}7LK956P&&Q+H11Ot6D{5Od zy4bEIviKYvvHMfXu*p_Gx0PI2gZ@h1g$WDSn10)1a8aIvxRqR%KAA~VTgcy*$+qnc zT?1IU1k2>1d5;H_*9>K@R}#p><3k@@4Uv zo)^4|v2qr{5LCcm?!Dys&WvW8ahQ1FF^Mn*mW%D!VVj`54GSKu7eiCIfp*#X4Ctw4S_&E%=lZRmRvZA=&=pb?L<8=O zGndUM@F5t{2b2wodvAnpwEqz=*d!-CeI)af_~8%7wAJ$=ne~YgoVQG*34+(Nki%?r z&niMtYt%cpncjr}L^rWW_!mQ>O znZxc^c#ScrzSb)%Dg3JtiQ`zV3Y_Z-O;&ULZ9?G;YOMtP?NU-ky08Ckr=^N9?{`k`Gt~$4e5^EOP7|4v{Gg3K z7WuXQV7M_B76oyp6)7rn_yj2h7UqdFL!G{poPILSNnmq8N8QepEAQ7H8r`!`zgIyo{&;#f%gD`I(-seYKr;S4y|^7j$7*jEP{az+AY`nKS{GvSQw`G`Fl$wN5O*@0mWK?&hjA|t(OBlF zZa;74k)c_AQHD*{g`+^Cv5YJH8)+;dA~4p&`B7E)clh->;O%9x?S!q9p%W7j_@ZwX zx(cuV_d~bhuvuJugGL7IMFBdna*T^4u~KszCsFefGa9@6?>p&EVQy1<#8c6P^ESljRh((*W8zz zfvkJK?`z%@{L>?R1K)_yU6`4De!Fn%_^#ylV`+jo?uf4=IZwWi%0q@WBdLQjs z0N04-zt6HtDGIKO3=E5mHbU^KbZ7LLSK|WYgvm05HH5iQ6W%jA{(n*oioVi)vViHZ7HLsS!3M6(V0ag2O z%@w&s1CqhUHvDOnC$ZP-H|vV;jNg~41I-=&Ya5OfNB+Z0VZx`yLpQ#Nu)y39_3evo z)9}#8K^Q}3iKulEC)+lSqS8So0=`Vj#r8&(%IlT*>~GLIjdP2mj+Yx2na5F@rY9)c z66WGn-FSUP-MEH`ta)qPWA!C+VWh$_zT1d+(umiclql0O{fGY%4RwV-S9Z~;B6-$q zyMr@j=*_ZrcYtaTpLe3EE$^rD_|$JH^3Y@xQmK|Lx6yf4E}T^6B{OWbpRlIx`Vq~s zCg?$;CF|R$62VY-(RHF9=T`}o#*x~3iVMnEufK_qMP}3kAS>VXU-WT=#m_8|xg%H3 ze9!)#)Gg3jtG>q}n;@gGN~-53t9n$kS+XqGntM++J&w+qGy->CM0*%3AMSYu7!ajF5f@#|&Kd8N6;VrU$1 z&^|bDo3hF19#A4Ugl~@*o_xZE6AVgU3_AB|FJ1zUl)h?wqB42SkHiMAyn=Oc->Gt}}^3l733yXK^% zP5*5D8kx9x=Jj6?N?zhTQ+S%SPFK$1_vu^q<&=Imf*1{9UdXV5GH5viHfRFay z@FwD)BT=WbJRhf@ga1f5=Vve{d3y-ul+H;mLcL2fzZTa5g zJzA+~eYH0AQY%r=0Ux~dL7}&d*q4kJ0x`#O(Erb*86CVXsiyhCI3!>9JCLSRl%n!b z64*R~f3Sa+{sFp74@{;%Y}1?i&SqWzPI)wB$8E~nm^CT=zF0i}ddsp8eNqF9gJ9Hg zu1`)F{Et+u=|W3E2Y(h1e16vYr<{EQ%I4}jSE@ZuN}D`RP9edFHSoufl_TXZ*ro zyVy0qpVvr~>NXvglzx=13=59(gZ-SqhC}V&MBb=rb-W<+&0b=tANr8@?AGiCVku!htOJB4( z%|Y)m^k3%;WQ?|-U#>&}Bf63S%EnZL)N#mknI>`DD3`zUFPxm;g7_c0K(&?=4v}sQ zvN2InQ3`TWNK^ra$hnSPxZ*Dv5p3t(+Xk)`Ov`0uQH0p|Kx}MHd`)22e?LB#?wpN# zTDpw)iHn-O2C=cRA*oNsGWTyipk21#6aTWJym_A0&FgkW%>X4uT1cuC(k_xb(uMcj zZx+U z{5=u)@6|5DUO3?*Gr=;JmWs+O%fP<637|w2LCLTHp)L~+@7Nv+`h5S)Z9WO?8Su^5 z$%8aIW*g{_1C$uGKqaaFAPg&lBaG_fc<@j*^9sx~jD%Zc#uW#MVW&s9+3xgq_Nt$e z4TaZw$SQzYd%i=9@+8qjfc@FCN{@HjlCz^KWbMI26fZQ4rqab0yYab}auH9?& zwz3pTs4&1yQCY@NB@PjW1vMIJoM4spY{V1D<0}M5{g8^i49UdxP4k-(p3hhsM!+mDj+rxt1Rem4Lc@M&Xi(iu)+_7?2 zaZOQeqHa*K1*}7Hqse}M{R(b6{WYWKVTW$I$k;|QD1B6sZ&B}lrCZClLFxNJ$Bk@( zWVs0w8{>!hUK`KxPGeI}?7@pvWVl6&*q@78zx|TWO$b6-4LtLDY>^djmLaqRXlujC zq?%@qJ{AP|uDwmRJ4jXhAd54Vl~7H4_;dW6Ke=oX3mNWoay+RDW**~X8F`hPPw!0! zy&`X%2XGr08hY<~SL>nTr%{_BVKc%AA_-0_9*tTgZ;KG}t#9cr(EDX_HIK+6LB8(& z9;9y5+?n=`XHj9XVeR1efD0w9BXl9Zrk4vpK{zcW;NpeTKvROE9r7>hZ_|*@4t+@v zy{Ee2k`9|9q!A2#oi zHq}v(#-7iwdMwULb)@W3$yH@p-^!QI(BoC7SgRe|(5pL#D|kbi)N*l?`(Umeq9mo3F0Q)a1TW_LZ|1Jeuqvr*=$K zQ=7&xy=26#$$32PqQ`LXgK?(hBjof*_9BAP0565KMh5P6!;b5fw_;g!zVwLcOD2LL zZ&UJ+TTV@Ear|z9lA;nevrsS$Mv@c;xBCui9QfSE)1;5nB25j4m6UuxL1ru=w?H}VAn*gKBYA!`=%1OA| zhG4aghmrf_rC;8a&It&C@rgiCRJ`}sydaP-tOw>hY=V4qe+n`2OvLy46>9<~A2ouF z#PZEmG1iiu9f$^{#nR8>V`QQk_JMTYsrP2Jj~At48cal0Q%6gam^SK>+K$Rrzy_(T z^7__=hP3vYh2aHw6JGF#O4ey|1&O9iOm6svh>)Fh0`|i=V3l#Nq-af46BIsZ3=PY93p&sI3uiMq9pYUYws96@LfAOHOK~52( zYu01B$&05bM2>)|^n^2f@V_oJaXXpzq1xxuiYsnzAhK*sRa{%)rD424s8%GJ(bexJ zD0WNan$5*?vz(z5fE4j2?78pgz?Tkg1>YXVu-oxe65mse4cdr;R!$ori0F0iPe8uGj}~_*eJ=wSEXI4l!hZ zT*was-}W;bKEz41)&}|ynr*5jkl>q)VEh=5bJ%6dgh!Pt_MYPkXy%O40mLDFrKWmi}J3B4{ob=I^a4?%QDKkN<4hs2c`PktfO@NMF zHZqCkj=*^($y%Q_$SrrjEP6`Ij8pbRDm#N1d%{zr*nm6CiDa4^$jLX->2qWP9#l&| znjlZ|r5)o>@%$Zs`Q^X7`!ZOX{|M}@28z!RjI1}R?YT&rQ?Zl_<0(K<(cCs{={E37 z8+dMVW{N1Z_)#&bn~sOYzB+#}`T9*R3dhr8RN||3K{)x62fj<3(!SpNCU*%uX=X_njvxgTZ^2qd}`MgdbvL zsE{@We(CC783k<1DxpAcPfCzQNqUCiWPI-;Wq;JtYGHJ;bD?jBM_9XnDv3k=fy_OY zr$<9Ay#jAqY#X3jRzY_7cDdq(jq=A#l>(|Z?ev&WdwQcxB_k_tN4jly^6nvV-*G6; zF&1|=B&|b5GvX#1b#>|08%VveDGdwSiH5Hq)Vr_bq>^-wE}P3;u8$h6WRO?vN8MN)6tK}d~#|+1(q97ja6rHca~T9qqNrP6efB0Zs;kN`#zq~)CDCy3yW6#>C;?qErMXMwQQFeje-^jpm6VLsQaCVxZ_|tGLKaw(_H&Op3v1*Pv3AWitk#xF*nWt~jnJsj79)X5uBX z7|?JQz8Bh#4C$oIw$}yJuly0j0iJezvw`(W@}RsZ9K*Gb$duGkl}8v>ftRUjs2VcB zQ)9z24_TZyXe!w;*$uPG3%9S7iCgvyi$%p7CPG(-P<_$zcj&FcmSZcSQ*x{OOiibt ztfoZ;78*0+;FvJ14o1XBxwtSjdWGT?2o%QXCUGfggcs8my5koE6i4?)WjwE4;-kmW zqANIYv+TBVBJJ9}EsGNQ)7$+~>IdNHhtSib1aXa)u2^uwy2XhsygW}ZjsaHli&2Zo zBHgl}Ki_0^XA&!DPy%?Vd_mE-#jAAIF9>n0Mw3939A2fwf0-RFi}HvJB~qr~Tz1nc z@Ad%178d2M1dH&IB`(KIUBQ*}WuVD&m!Xxiey42K#pDlu__$cNFEOU5_ZlS{^xTB_ zzWr*adFmVFZT+cAJmrIS6@Q|#Qw}qMTo(j9013?*Qf{i#>iyh7o@%Ce^ofVzJcsCP zw)TFi0wosVHYQ=U=$|=p@jq7_V;!(#lvQxU`y1j@I#eaGJSQ6gSuwggbk6^sQ?W{1RF6S0RxFAc zEel2@++i()^G6p+)ljBhg>BORURihNB}DybftC3HFB!228%Agm>xJ~I^Vt<-HHuXZ zNjQ)ej^YsGOD3y=pT$eoKn4_`c-bJxRT-G;uZOIm1l_Asu3-cZRc2oNZ3NC(C&`n?{@=uWFyNXnnYw&9`%Q4` zs$xB%wg#64mR+ywJbtNuXcvUY0L#n{E7H$BX;T@Re#-OhhdOtT7Xz@_ho8ZPL)G;b zMl@kDVyjQjplOS!QuCHoOi0GC)-VfW*}|~jjBuwm=JfSoa`BhSSj#znsl;{1oPdQL zBcjTRQla@Cz z(YaqJk+U;$wg7ewhKK_f%TJZC0cKR?+IUSg9OGn(c_$8w-KXs~jQ_rbs-Ej zsSYYx?n+t@4D0d6p=wLtZ&?+)WoiDc7wCup<%4`N^6V- zUbl=!7;+7Q6d>d&CEp!uGbvLLP!>Qh6gXP3TtT^jBYNo7`MIJ6Roh^*& zh>u72q$(sdR;kCB9OyGRamCt)?zLbSB#j8l6_G<^22=h{oFE>&Ata{vd6vbKu_ve6 z_TLFz(yu9kus!`p7hgj#?d;IHW>DryX`40q@qm%&gG0FF>R4r0dC>2Irk=2Y#TEKmSSv1tLpe~eQLQ4JYLvemI+1Ir8Lp2zP#FiIoyf>&!KDDXvj-lI z5V?$y?TTqdUSqv|klw!HEW;$uLW?+R?zHY6N}n41EEOkSO4cs{km;fap-^Q;4WmVa z#iE6x$pe-z2mVlB39!eJL?DXNTjym8<7`xnHw5daX;2u*|2B~5+k-3MEN?N4$`I2ks8w*0VOa&Yw>~-r7+TOny|1m;cp|9wk4sc zoDWBCr-{vOVA&g%L%e5gNU8aGVoGlW7SY6t|HiB=QxA^E9hUOYcH?1FXaHupYhXK@ zTEL~N+t{PNS;KOD?Q=tNPdMVuFi3xBeTQBt-uJF#HBI7T)~5^@9H`JFeEPOm*o4{V zB3uyKzl;f4n5lr#8jMc=xw#k-3%jgmGjjd62v8b72?qAYDXA^Ze7YQJ>uUhHB_;)) zM?*@AKMt^!%JfZm`!09!&wmpnJgNVp_T0vKf#n?-;r^vZ?;2W%!Awx3zcY%ec=7x* zg^*T42p*p@Y>KNUDwnIAP|jK*jtYwhpK5P@8eofN8$nQq4e7?Ax&~-cvM(O_|13>E4))?9c*+`% zQx;_rV_$}-T^(fW0OcN-AVWV#e9Iyve;QTv9-}-I%1WW4cLUKk(Z-l&Y=rdUfKtXU z+KeKAevcd3Nx|2cHJUipDSwq5dI@!dgRR{oKem}7gTV4%M5$_P%^_tNfn1tn;FksS zL@yQ<&5As^%x0uN0%`6lf)j2s0J7!_Yis-=jzZxHE6*j$o!mqn>X>D_f2*U2ldlrN zueMn@C2Qj<`&gzYW6ezbyrLXY%Y)VV*XbUDX?gc-Q$j#|OZY^dr4ZjQ2pe(M(wWyoNY6rQOfd%AB_;Lgrj&Y?e{Z1L?+lE^x9g)7||b}W6ygojqKfmXI?ht zH_@&PT0|R&-W5gry1?D1f5tu%wyau!yr^$*ukz)J>#q#fCY_A~Ij| zr7++b2MS{A-W=OTtz{u#pqx5R`_wCX(i2TJT9%vxX+N6V!x~)owc2qyaVz_cC6Lkepz&ds>~nx7dc={CE@k7Tv@bZKZTK7!lBx$;BP?yhHbm z@VlCRqg{Wsb^&bmlGVB*-_~!MD8k64t7|+0lE9W`XECO+1rmU3I;YF(c@5B476*095rI zX1p19yY^nwMdQ>_88f28M%i^LIUXnpcqj)&6FBbGUTC&NcwNXBy;xi-)-nkTr6na1 zd>2Hi!>vZzB|L|CW<(b``1D$7TC)nvx;d%zaXP)wnu;koBE4(Y-rN=mZ%YoVKJ5cp z2DcqJL6-)h_+f|0;aCpPR6BkH5$?X;nYlKJ$dp>RQ>Y#ye+wL4eZNFk1;7Vpj=0=t z{8KoyHifrZky$di30du0#U_$ql?jjDN+X1tHEm|0#6dWEUJ9KRhI5#c^U1_FiLbYO zX~0OihR3jK1A%jt(rxjG#d~K%D!2tVF`KJs*CE*-uW2GdWm$?Q=HCd2xRoN z5||ypYCYr~x09wkO3{z;vB$O>k?Qa1JRvEDm~KZ4kb-AjUabhztJjY%ddYStb-$)t zsuwAd+CRhyk_lk|CmUQ`V%xwQH^=FG$EWANwNnjZ%&#jzWH(gLK=-kznt76GNnx65W!i{?-nUQhaL+qfeP*Wo zAr`5Gt6mn1ShoFW1)@WpWDRv(*RCv1#dr_8+F1Zr)1^TeW?~`4E+v&NY;m-~m8Om? zPg0?MoTIrcLb_b8?pe*U9#FFBs;`pK2Pn@1bg`9H;qGvph^f}JkOJu1eV0IXy+1f^ zhrn59yPfmtMkByACy`an)WnN&^&89IvGL5YVQhkjz+IcavqARylu%7^Rv?H z2@jNr3bFr66WY}jVNJ|+hO}S>jsXVsh&pHl^*XLf58%adG&@B!?YVL$Sx-H0R!^59 z@wCPRfcp4Pm9oEW)LW75zftbVYlv~#BhY4+42P0XbP^~MDZs@=vJ7}`W!e?Q#obcC z<-rv@4F9X{r21Vg_1_?;6nj1Sw$l1}xCAFB0wLR`EUe{Oa^g5mTr%2pRNtC03>?MW zf3@t z6<>aLjVdzHR#D1!s3uLO6R}rFrn)ovtWDi`7&l~sr5g_Xtkmp2k1GCS1Bm7F(`!}Z zelJ^LPzKYRed+9Q!KX4A-CfI)J<03^R^jR4ZaMWrd|L>LT&rk&ja~KGf>R7^7TvU~ ziI-+)i;w(l3FFmGOSDS{#`@JK^&v4kO>BI(%~3H`5&Dx!r)pC4b`e&g$QQE9V^95e zV}GsA82_r;+b!VavmG}$0Wf);vGk{xQJ1nM4QYXPnDp4}D$49&sll;t_01$kaxF5krIe+^OD zpoIV$Nxr)h=X{E9w$xpq5y%Hv;eDA&CSF>AWA?Y3pEv@LBWgh~TI|9XmGn9Db#I?V zYR#%MEq}+O?@c|?ORLN9SO2P3yyr=;?A&D~nISmKIiUV)>QbqJyQD~K%dVh|QweVb zcJc*lvmu)`7YtQmw|SUh6KCo1lg{f!AAq^4bx9TY2j=a@yk}kGD#Fde53^YJ4M<{m z86j{@Ow3i0%hlD&%{)n{-)7TuOT#IU#b6LamBX{6)ab^1f3oSb;42^t6N3#!o95ce z2vRTWVx1gTXxC-n4E`K|5|eF0mOR8a9xCeYj!d>I(v(>h3=}*y6NfJ4HSHU6-Beq} zWunch!JPzg6ohQf^J+=c=jmt9P5iO#Ev4Ww7jBtqyH$!&4EQf8X?A3GZ4w1)*$tvd zylNh7+64C+xFD${9Xoh)mGfcuxl15D*jTMZ0EugedP@Si-rJRa)jHpPOa_$MmS=r? z+B@2|9|*>oX>5uEItmh9ls& zkim*W16{*<#NX0z66xA`bzFU9%qHpNV)<2mH)gSWr&0#hQlXqRopWAj6C1N!m`kLI z3n&_eDmPmY&*Eh}1jKn=-G)rnI|7mY!OEAaMxSZC@iaH?1+~muY-c$adh4HGddIR2 z=FPGJCUYOk+xq+kGAl(mrouzdQp+Th1l-7qxEhS$h-7QJvbgB7MqV1&VPeKx%SpBe zwn{Llq0-gL-?d0-4bQP~9^+RDDoN-ei+Zfpu>d_n9qA-Q#; zQnU6#`?R{PcL$*UAlslb*DzapkZ0x#&_sYpLi`lPf07p^{*6+`HkQkH|`+ zS5x+k*v5NgXJHP;mvV+AK+Fe<^QtN95&c<}5pO)ZTwhS*`ESUthCAp$&ch;oUe+Xq zu1Jw01Iqxj71T=_g}{WPFEP7V)N@l-Zypaz^ZCV>|C1zA-ys)j0z4-pH8K+ zImj#wXP-utf_nvhp{!#O^X8cQQsEdxDyp!PAg$vrXQ_Qpp{a827a9d$VbwB}_Nnna z^vzOfjI+5v-`xfv#$Lk3XhfPhR396KQ`bZYr8}!SJDcatNN#=(4Puoto`;;T4glGm@Ns2wDnX6mF}!p4xag`;yukBdvJ|>{_>$-(m!0vv**t?4zVr%PF2q1d z11@!xoykAJQ6mi5j3!)}1yM+@Ny$n{bA1N$c9+oy1F029jc`XV@;+?L#R%b8SyBEN zyJtA3lS)lQEyzSsy^x&5CDvwxLJAZ)rf7;BT~(trX9}Zogq`Fu`%{2RR1-BuJD+Jy z7tsB*O6Mr0svKp)66}srrg5FB1U6c%Sj5bso-b`j>Dsuz+&XSn$y!>sL&<_WCDy-B z9n0wb@5n}0i{<O3PRm)49oWc-(j&bO8(VCHJ2GIuYM9LDW#D96}TS{w0~5QYj^NtV!hmUO2@N+w`CU3i+ag^wL3PTzg` z4!rO$X$$HI1&Iu@v#%Qd1M=dmbdeqD|-<={v+g6C0;O% zKAkJK2{ewS{4Ms^|4LNNTNE_gS|xai6qK&a(5R)(c`5 z#w^#p$jH$?N9NCXSqyQ21~Tib4K;;C`ZfJW&Ng}LIIK+^bkF|s#rDc%!mjXrl5QoY z2n=`;n-&!Ox~K{&YOC%-7F>A0jJJ&(qcvp8^droUfyB^032c-~dAfRFm_4uY?4Mmu zF5Nor31!&HG<@Y!wh-;A^1i*Lyj1f#HxL0LP08IFuAFqZ%>h8GE#>i*b@mbI2;mPB z&yECX?)+CK@i%ra?h0ShH5*YVU%{|^8|K)k>2w$3@yE~%uN4A2}2oT=G4*O6{) zTPyNxfwI6@q(u>>Y+Ofi9NJJCMO8G8 z30zeJCZJTqX@=|1PAfBMhdj#E9Nep$omz){9}A!N$hWo5SljL*^--hIw3@F1v#~-8 zMht=qouX7d<1d(ew?5X+TJ#0cySm-_$T}b?>o$cYi&4IWv!#rXQF3h^DfArOD$b5b zNg`P}T}nyy%3N!OC{4YWV%HBzwQuUL7QM*6t0+N8mXwdSg|>?ZlxaDy;#I(NaDsB3 z&E=F-rrqA!oJg&fX4S(c#^w;SJPL&$+a7Sj+Y<=|wF^9`&feA9yE=4mMtL{Ycf>c3 zI+BltA{ec@Rv|R4?rT|%uGO)6AV{dy2vprmZracRyZ(1Z)j}~}BYCBqi&W7hXZ*>2 zZ*pz^H>;Y9sM)ldIv5)^5(}NXb2^E+^WCHdvV&izP#upVz7i0a%S<^4{^Z+^bXAFA zY8A2MCDJSGOR^Mrl5_FaTRk-v)e%&yqM;)$Q^2#-s3a>%MI?>$p&OA&OMJ1S6$%x~ zgcm#InS4>CrFvYXAgWLj)I%4ZX;tJ3Wg0V{l;5m7S{^(%=pv5g8L7rr@EVv)B45p_ zw{?4JIbrRGE;%V{wq_H90X1eCAzAIQx+I$%ecOGal0h8C3ZH@5Z@__OT>s=lra>VS zTgVzkOW=}cAVcs{DX3AwXzg7=I&?z<3f0kI81$&8NWHApt-YU3K}85)gig+o8SpuF zS@Yn7&M}X=Dvfek_$+tCRptd#PAuenagdUH07JFl0L^^9Ca8(Vz0eOMhP6wxeOXy1 zlKS((wUCRhTS<3JKD)^Xn^dG!P@xl32qiaq@NYa*$+h%|S!(vC z=n@6EWV%-*1zlqAZIXx%nF*mxvN)%SLGAk?{k3)1=HGZP8Z4oDNum}L*D|HD#@_Ot zsNJJ~aucZH(IT`fL?>*60ZLX~b6+G~ARb)uMh`_)$4(Vfz-zS1333!+IjkNW(uq{Z zLxYlFYZcCtsNtw5jw(u~Wsi_r(J4Z3kdPWxkvdijj_G{#_IJ!P&G1pt2FobbM%m$- zA(9K->2ys?gsz54FgJ;%W~ss{YFm%!aHl$7ON#19T$P}PfmzO(678AH*1qq(?%urD+G`P3DTMB=D>O`W6z zna~a@)>xg(7zU+J{`Jv zshqocuV7r09FwFvVG`G)D0IX`hO0ANXls_m@=VOje5O*>ki0R&CMiW~szhv_!6j?H zb;6WP#W`0jvaYm<f1oG7jl9RIz$pkK!1~#H^gBb1_;cq+A?x%aMnU;VjvG~M>_ z{vUn^wEui~(bZq35|q*aRlo#Bs6h_$Xx%_%B?CqEc$$IGPpBSvC|1;DJ;yjy5Y&jJ zNC`s=As>W4P zcHL>SzJcy$Mx!S3eK$ZL4x@ZGU4|&8h+3HL%DRx2rUXrXKiAuDx1($v*jpuVAP#fRF5z{g23CSAe2eAv0`71`S zK%OfzbuikYLe~Ncu?kXy&b%2S(dKVNsb(y+hqKI6skdOnQ`r;S+SDY6Xd~Bz^i}Qg z;Ipzlk=#AgT{~8(5WNWmV(4>J=*nyrHP8%;orz9JPuGN6_^?ETrha~(%b|UsF6Z&D zuFcXy=uu+ji)^}POh#1({BFpAftR%Yn0-FI_oGH4hKHk}{|LE_nNh<;_5N?EB;8u~ zhHJ_=TuDv9>z4d0M&H)vM%=EM;l00y8tTEnQB zMC#?$Wd~bSaaDY${qBvcO!L#Ci|32W7K)!amwApmqAhVo!>MKYs7R?!9-uWR?z`E| zcguRVCk64t1aOv8RLIFB3zmP9@SkfWCc#t^>Q!)JBfoe5za0CWH%RmIr#^>!$~u@P zyd;@G4$ZP*id!#))dNgw}0VKOK5<+NyM1 zqo9fih-FK423%VPQ?6sH5%nrT%Mr?P^z%|1H#N$Kv9^xDQt*4|DR$#f0FEmcb<>R9 z=)EZ_i^Zb0;ri23u~I1qEt&c|*Vt~}>Sz?V!hNV4a9RE-?P|~nEVb(ys0SSX&lxnkCHwNB*Gn z$2ZyEw0&~YJPMZxkde=0^&v@9Kr`TB@UHBLu@FkwU^jVOSwPHPopejSaIGl?`%CCA zXc|%S=-pCoRY_XI89h62kRKR3YCH3XrM!5ffBs=;Oko8r^_Cu z@0xgBXo@zma{xzd_l+c5u6V2B8P6HEhqlpT?d8ds>|9tgLMCNG9;yHHql@-p({1wV z_NwWTcx-*q81@EU=HvpX{H?BLXTycDkTO$1L{tsnf+{}SD1=B=XzzAH#PLl;h36{pj~eaD*sn*$FX`<}Fyex&M>WETcB2OIyHWw&&hIj~ zE~yEq3Al3Wu+lC8CEezrkEq!PKJraXdU;-K7!p zK(2#Xhfs~!*PAfZeJH8;6oH`7F)N_LJmuxRcvp5CL>tPbmnMu&kl6WPl1v&|=YbfW z{yg0Z;vl8Kc-HeACrJi1rLu@Ik?%@K@ifjtanVyVdOoy~EMpkp5CL(g;qW+O1-$Ye343-8e!7GNg$eZNMmt* z3v!xL=;P(MI989e^(YW1++={vx=|R%G(n;@J_DCAOt?`#Ywj$1mkz0TE|&_rf}9bK z&InxEaFHHt3ZX=I2AKT2m9Eo@$AY8^wmitTRYwdNzX@e45JW$m{ExHsh3a4eD)24! zwmzDt6!I>*R;spW4YzL#DSEK^rtJLeJ0}ib(s{BDp5OgLuiE>O;9k(;H@opLH!R)| zI_T~PCKn&t$LE`n;EQA>=(A9~1r$1>Vv}FD29}B$E>)y0p&(`km4;dg?%6#h-_W{X z{06r*0USoU((@D>Wim>|O9pLlGGsmV!Tps|hPFwwtu4{eO4x^-FkGVPm773@2n!NA zS((5jOigEUA14U`;01=nv``m7rMOy}s#rz(8GL+JloX=i9ELLhM!&mWW+&+hUD^X2}#jOAG84 zdypV}+nk7q4A!?a0&MA3|0d>}@LP(RMFZGpb`ygb@`CO`0L!(2 zd^YRGKk@TQeAM+?rcVam)ba z1x<>2?eLBXGg{IknTJ5J8KWe22&BSQs>q?-p;<|ED2L6mWfP@Zi)vo2Ec<2@k7$<0+_OdrC^ds+JbM=_( z9dx=VXTVcvt$nf=_wMm&?$wWPe5-4J3Da8ps2kLDqU3dBd~yHkR7{;bZ}JGYsyiVG zkL}i1iH&0~-r}6q-mYMh)%qHkOlee6tYtY?Sebo`fLMU`8nuWstdC@G2 z7`4)OgfJX(qExZdEc@1Qap8i+k>$w*0$(=p5~i@I5rG&ZyF)$_a&S(-l}Q^9>?X!j zI~FjXT-5&4*Z0-flWSvb_34MZLSGCxlafY5GhP#ut5ilgt+h}j8i1u%q~&s+Hc)5= z6&C7jS;a^XXI@-n)DBWAr!l2ivc_6MjXNbeoGIk3bg4@B4~O17U#xrg@x@J(95_nF zU_u%R6AgU;hln!HDU<;I45SQEwMNz}T;CUG{lxy{lVz&;3v*$vrGnMC!`tCObXf{_ zu)n#xyV`1G2JrkkhOz>;3-UqHlkJ9lBgJ4$*$z04;$m9N2ANc|uCZ1FSxcg|IF!I7 zuWX*+B*>w7(}|g0pOgvNF=^wwc5RA@6_zbrcM06y6NZ-MYY(Pu8&<_Rk<=BT?CwfS zg#;@_1-yS~+cg;V1{|dvCQ*UZ`Bu0VQKe2X06a#^op$NotzeZ*o;F$Vx>#%=tB8YO zqWNlzk%J;u?@2R4GW89?DN^toO5S?Di%=r+Y{SliGwus8gL}oRNI>=vPJ4pYG9Rk{ z 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�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

7+`TOqNojWL);U-r<>gP8k^I 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 jn}IS)q6Y4>D2 Date: Wed, 29 Apr 2026 12:07:12 -0700 Subject: [PATCH 100/131] Calculate actual resource status Fixes #2930 --- server/setup/scriptsPg/1.18.0.ts | 66 ++++++++++++++++++++++++++++ server/setup/scriptsSqlite/1.18.0.ts | 64 +++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) diff --git a/server/setup/scriptsPg/1.18.0.ts b/server/setup/scriptsPg/1.18.0.ts index 3262308f8..df22faa2d 100644 --- a/server/setup/scriptsPg/1.18.0.ts +++ b/server/setup/scriptsPg/1.18.0.ts @@ -545,6 +545,72 @@ export default async function migration() { throw e; } + // Recompute resource health by aggregating across the resource's targets' + // target health checks, then update the resources.health column to match. + try { + const resourceTargetHealthQuery = await db.execute( + sql`SELECT + r."resourceId" AS "resourceId", + thc."hcHealth" AS "hcHealth" + FROM "resources" r + LEFT JOIN "targets" t ON t."resourceId" = r."resourceId" + LEFT JOIN "targetHealthCheck" thc ON thc."targetId" = t."targetId"` + ); + const resourceTargetHealthRows = + resourceTargetHealthQuery.rows as { + resourceId: number; + hcHealth: string | null; + }[]; + + const resourceHealthMap = new Map< + number, + { hasHealthy: boolean; hasUnhealthy: boolean; hasUnknown: boolean } + >(); + for (const row of resourceTargetHealthRows) { + const entry = resourceHealthMap.get(row.resourceId) ?? { + hasHealthy: false, + hasUnhealthy: false, + hasUnknown: false + }; + const status = row.hcHealth ?? "unknown"; + if (status === "healthy") entry.hasHealthy = true; + else if (status === "unhealthy") entry.hasUnhealthy = true; + else entry.hasUnknown = true; + resourceHealthMap.set(row.resourceId, entry); + } + + let updatedResourceCount = 0; + for (const [resourceId, flags] of resourceHealthMap.entries()) { + let aggregated: "healthy" | "unhealthy" | "degraded" | "unknown"; + if (flags.hasHealthy && flags.hasUnhealthy) { + aggregated = "degraded"; + } else if (flags.hasHealthy) { + aggregated = "healthy"; + } else if (flags.hasUnhealthy) { + aggregated = "unhealthy"; + } else { + aggregated = "unknown"; + } + + await db.execute(sql` + UPDATE "resources" + SET "health" = ${aggregated} + WHERE "resourceId" = ${resourceId} + `); + updatedResourceCount++; + } + + console.log( + `Recomputed health for ${updatedResourceCount} resource(s) based on target health checks` + ); + } catch (e) { + console.error( + "Error while recomputing resource health from target health checks:", + e + ); + throw e; + } + // Seed statusHistory for all existing health checks try { const healthChecksQuery = await db.execute( diff --git a/server/setup/scriptsSqlite/1.18.0.ts b/server/setup/scriptsSqlite/1.18.0.ts index 632d2e72b..49ee8c450 100644 --- a/server/setup/scriptsSqlite/1.18.0.ts +++ b/server/setup/scriptsSqlite/1.18.0.ts @@ -509,6 +509,70 @@ export default async function migration() { `Seeded statusHistory for ${allResources.length} resource(s)` ); + // Recompute resource health by aggregating across the resource's + // targets' target health checks, then update resources.health. + const resourceTargetHealthRows = db + .prepare( + `SELECT + r."resourceId" AS "resourceId", + thc."hcHealth" AS "hcHealth" + FROM 'resources' r + LEFT JOIN 'targets' t ON t."resourceId" = r."resourceId" + LEFT JOIN 'targetHealthCheck' thc ON thc."targetId" = t."targetId"` + ) + .all() as { + resourceId: number; + hcHealth: string | null; + }[]; + + const resourceHealthMap = new Map< + number, + { + hasHealthy: boolean; + hasUnhealthy: boolean; + hasUnknown: boolean; + } + >(); + for (const row of resourceTargetHealthRows) { + const entry = resourceHealthMap.get(row.resourceId) ?? { + hasHealthy: false, + hasUnhealthy: false, + hasUnknown: false + }; + const status = row.hcHealth ?? "unknown"; + if (status === "healthy") entry.hasHealthy = true; + else if (status === "unhealthy") entry.hasUnhealthy = true; + else entry.hasUnknown = true; + resourceHealthMap.set(row.resourceId, entry); + } + + const updateResourceHealth = db.prepare( + `UPDATE 'resources' SET "health" = ? WHERE "resourceId" = ?` + ); + const recomputeResourceHealth = db.transaction(() => { + for (const [resourceId, flags] of resourceHealthMap.entries()) { + let aggregated: + | "healthy" + | "unhealthy" + | "degraded" + | "unknown"; + if (flags.hasHealthy && flags.hasUnhealthy) { + aggregated = "degraded"; + } else if (flags.hasHealthy) { + aggregated = "healthy"; + } else if (flags.hasUnhealthy) { + aggregated = "unhealthy"; + } else { + aggregated = "unknown"; + } + updateResourceHealth.run(aggregated, resourceId); + } + }); + recomputeResourceHealth(); + console.log( + `Recomputed health for ${resourceHealthMap.size} resource(s) based on target health checks` + ); + // Seed statusHistory for all existing health checks const allHealthChecks = db .prepare( From 78fff6bfde86f826a78ac0296638be10ee8c4a6a Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 12:18:28 -0700 Subject: [PATCH 101/131] Filter to only allow newt sites --- src/components/HealthCheckCredenza.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/HealthCheckCredenza.tsx b/src/components/HealthCheckCredenza.tsx index c0b78018c..0360a15e7 100644 --- a/src/components/HealthCheckCredenza.tsx +++ b/src/components/HealthCheckCredenza.tsx @@ -485,6 +485,7 @@ export function HealthCheckCredenza(props: HealthCheckCredenzaProps) { onSelectSite={(site) => { setSelectedSite(site); }} + filterTypes={["newt"]} /> From f03389a9a002b5c35f63a3f17b28898786c64c8f Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 29 Apr 2026 12:14:21 -0700 Subject: [PATCH 102/131] fix cert styling --- src/components/CertificateStatus.tsx | 58 +++++++++++++++++-------- src/components/InternalResourceForm.tsx | 4 +- src/components/ResourceInfoBox.tsx | 6 +-- 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/src/components/CertificateStatus.tsx b/src/components/CertificateStatus.tsx index 660fad62b..0d4fa9026 100644 --- a/src/components/CertificateStatus.tsx +++ b/src/components/CertificateStatus.tsx @@ -1,7 +1,7 @@ "use client"; import { Button } from "@/components/ui/button"; -import { Loader2, RotateCw } from "lucide-react"; +import { CheckCircle2, Clock, Loader2, RotateCw, XCircle } from "lucide-react"; import { useCertificate } from "@app/hooks/useCertificate"; import { useTranslations } from "next-intl"; @@ -59,6 +59,21 @@ export default function CertificateStatus({ } }; + const getStatusIcon = (status: string) => { + switch (status) { + case "valid": + return CheckCircle2; + case "pending": + case "requested": + return Clock; + case "expired": + case "failed": + return XCircle; + default: + return Clock; + } + }; + const shouldShowRefreshButton = (status: string, updatedAt: number) => { return ( status === "failed" || @@ -78,9 +93,9 @@ export default function CertificateStatus({ {t("certificateStatus")}: )} - + {t("loading")} @@ -97,7 +112,10 @@ export default function CertificateStatus({ {t("certificateStatus")}: )} - {certError} + + + {certError} +

); } @@ -110,7 +128,8 @@ export default function CertificateStatus({ {t("certificateStatus")}: )} - + + {t("none", { defaultValue: "None" })}
@@ -119,6 +138,7 @@ export default function CertificateStatus({ const isPending = cert.status === "pending"; const disableRestartButton = cert.domainType === "wildcard"; + const StatusIcon = getStatusIcon(cert.status); return (
@@ -127,17 +147,20 @@ export default function CertificateStatus({ {t("certificateStatus")}: )} - {isPending ? ( + {isPending && !disableRestartButton ? ( ) : ( - - + + + {cert.status.charAt(0).toUpperCase() + cert.status.slice(1)} - {shouldShowRefreshButton( - cert.status, - cert.updatedAt - ) && ( + {shouldShowRefreshButton(cert.status, cert.updatedAt) && + !disableRestartButton ? ( - )} + ) : null} )} diff --git a/src/components/InternalResourceForm.tsx b/src/components/InternalResourceForm.tsx index 56bca891f..62e4fc611 100644 --- a/src/components/InternalResourceForm.tsx +++ b/src/components/InternalResourceForm.tsx @@ -1154,8 +1154,8 @@ export function InternalResourceForm({ resource.fullDomain && build != "oss" && form.watch("ssl") && ( -
- +
+ {t("certificateStatus")}: - + {t("protected")}
) : ( -
- +
+ {t("notProtected")}
)} From a029b107aed3d6c2bcc0ee88dbe1a23aa2e76318 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 29 Apr 2026 12:35:08 -0700 Subject: [PATCH 103/131] dont show site online status for local sites --- server/routers/resource/listResources.ts | 18 +++++------- server/routers/site/listSites.ts | 19 +++++++++--- src/components/ResourceSitesStatusCell.tsx | 34 +++++++++++++++++----- src/components/SitesTable.tsx | 2 +- src/components/multi-site-selector.tsx | 12 ++++---- src/components/site-selector.tsx | 12 ++++---- 6 files changed, 64 insertions(+), 33 deletions(-) diff --git a/server/routers/resource/listResources.ts b/server/routers/resource/listResources.ts index 1ca0ef918..16a82e400 100644 --- a/server/routers/resource/listResources.ts +++ b/server/routers/resource/listResources.ts @@ -152,7 +152,7 @@ export type ResourceWithTargets = { siteId: number; siteName: string; siteNiceId: string; - online: boolean; + online?: boolean; // undefined for local sites }>; }; @@ -383,12 +383,8 @@ export async function listResources( .select({ resourceId: targets.resourceId }) .from(targets) .innerJoin(sites, eq(targets.siteId, sites.siteId)) - .where( - and(eq(sites.orgId, orgId), eq(sites.siteId, siteId)) - ); - conditions.push( - inArray(resources.resourceId, resourcesWithSite) - ); + .where(and(eq(sites.orgId, orgId), eq(sites.siteId, siteId))); + conditions.push(inArray(resources.resourceId, resourcesWithSite)); } const baseQuery = queryResourcesBase().where(and(...conditions)); @@ -426,7 +422,8 @@ export async function listResources( hcEnabled: targetHealthCheck.hcEnabled, siteName: sites.name, siteNiceId: sites.niceId, - siteOnline: sites.online + siteOnline: sites.online, + siteType: sites.type }) .from(targets) .where(inArray(targets.resourceId, resourceIdList)) @@ -481,18 +478,19 @@ export async function listResources( siteId: number; siteName: string; siteNiceId: string; - online: boolean; + online?: boolean; } >(); for (const t of raw) { if (typeof t.siteId !== "number" || siteById.has(t.siteId)) { continue; } + const isLocal = t.siteType === "local"; siteById.set(t.siteId, { siteId: t.siteId, siteName: t.siteName ?? "", siteNiceId: t.siteNiceId ?? "", - online: Boolean(t.siteOnline) + online: isLocal ? undefined : Boolean(t.siteOnline) }); } entry.sites = Array.from(siteById.values()); diff --git a/server/routers/site/listSites.ts b/server/routers/site/listSites.ts index 10f5ac0f1..fc4ea5be1 100644 --- a/server/routers/site/listSites.ts +++ b/server/routers/site/listSites.ts @@ -31,7 +31,9 @@ let staleNewtVersion: string | null = null; async function getLatestNewtVersion(): Promise { try { - const cachedVersion = await cache.get("cache:latestNewtVersion"); + const cachedVersion = await cache.get( + "cache:latestNewtVersion" + ); if (cachedVersion) { return cachedVersion; } @@ -226,7 +228,10 @@ function querySitesBase() { ); } -type SiteWithUpdateAvailable = Awaited>[0] & { +type SiteRowBase = Awaited>[0]; + +type SiteWithUpdateAvailable = Omit & { + online?: SiteRowBase["online"]; // undefined for local sites newtUpdateAvailable?: boolean; }; @@ -338,7 +343,9 @@ export async function listSites( // we need to add `as` so that drizzle filters the result as a subquery const countQuery = db.$count( - querySitesBase().where(and(...conditions)).as("filtered_sites") + querySitesBase() + .where(and(...conditions)) + .as("filtered_sites") ); const siteListQuery = baseQuery @@ -397,9 +404,13 @@ export async function listSites( ); } + const sitesPayload = sitesWithUpdates.map((site) => + site.type === "local" ? { ...site, online: undefined } : site + ); + return response(res, { data: { - sites: sitesWithUpdates, + sites: sitesPayload, pagination: { total: totalCount, pageSize, diff --git a/src/components/ResourceSitesStatusCell.tsx b/src/components/ResourceSitesStatusCell.tsx index 3c940c6b0..8a33c284d 100644 --- a/src/components/ResourceSitesStatusCell.tsx +++ b/src/components/ResourceSitesStatusCell.tsx @@ -16,10 +16,10 @@ export type ResourceSiteRow = { siteId: number; siteName: string; siteNiceId: string; - online: boolean; + online?: boolean | null; }; -type AggregateSitesStatus = "allOnline" | "partial" | "allOffline"; +type AggregateSitesStatus = "allOnline" | "partial" | "allOffline" | "unknown"; function aggregateSitesStatus( resourceSites: ResourceSiteRow[] @@ -27,8 +27,17 @@ function aggregateSitesStatus( if (resourceSites.length === 0) { return "allOffline"; } - const onlineCount = resourceSites.filter((rs) => rs.online).length; - if (onlineCount === resourceSites.length) return "allOnline"; + + const knownStatuses = resourceSites + .map((rs) => rs.online) + .filter((status): status is boolean => typeof status === "boolean"); + + if (knownStatuses.length === 0) { + return "unknown"; + } + + const onlineCount = knownStatuses.filter(Boolean).length; + if (onlineCount === knownStatuses.length) return "allOnline"; if (onlineCount > 0) return "partial"; return "allOffline"; } @@ -40,8 +49,10 @@ function aggregateStatusDotClass(status: AggregateSitesStatus): string { case "partial": return "bg-yellow-500"; case "allOffline": - default: return "bg-neutral-500"; + case "unknown": + default: + return "bg-transparent"; } } @@ -84,6 +95,7 @@ export function ResourceSitesStatusCell({ {resourceSites.map((site) => { const isOnline = site.online; + const hasKnownStatus = typeof isOnline === "boolean"; return ( - {isOnline ? t("online") : t("offline")} + {!hasKnownStatus + ? t("resourcesTableUnknown") + : isOnline + ? t("online") + : t("offline")} diff --git a/src/components/SitesTable.tsx b/src/components/SitesTable.tsx index 4ab35359e..c29314874 100644 --- a/src/components/SitesTable.tsx +++ b/src/components/SitesTable.tsx @@ -60,7 +60,7 @@ export type SiteRow = { type: "newt" | "wireguard" | "local"; newtVersion?: string; newtUpdateAvailable?: boolean; - online: boolean; + online?: boolean | null; address?: string; exitNodeName?: string; exitNodeEndpoint?: string; diff --git a/src/components/multi-site-selector.tsx b/src/components/multi-site-selector.tsx index c06f6c74a..76255e824 100644 --- a/src/components/multi-site-selector.tsx +++ b/src/components/multi-site-selector.tsx @@ -111,11 +111,13 @@ export function MultiSitesSelector({ {site.name} - + {site.online != null && ( + + )}
))} diff --git a/src/components/site-selector.tsx b/src/components/site-selector.tsx index 1c6302d98..778a6fcf6 100644 --- a/src/components/site-selector.tsx +++ b/src/components/site-selector.tsx @@ -124,11 +124,13 @@ export function SitesSelector({ {site.name} - + {site.online != null && ( + + )}
))} From a16f805709ae99705a504f29a553728275f80a02 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 29 Apr 2026 12:36:47 -0700 Subject: [PATCH 104/131] fix style for unknown status --- src/components/ResourceInfoBox.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ResourceInfoBox.tsx b/src/components/ResourceInfoBox.tsx index cd8e6ec8b..7ddb06ddd 100644 --- a/src/components/ResourceInfoBox.tsx +++ b/src/components/ResourceInfoBox.tsx @@ -188,7 +188,7 @@ export default function ResourceInfoBox({}: ResourceInfoBoxType) { )} {(!resource.health || resource.health === "unknown") && ( -
+
{t("resourcesTableUnknown")}
From 227501d8f8b52ab891ada10f9911ce144236050a Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 29 Apr 2026 12:39:08 -0700 Subject: [PATCH 105/131] fix rounded buttons in target input --- src/components/resource-target-address-item.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/resource-target-address-item.tsx b/src/components/resource-target-address-item.tsx index c801844ce..08ce40dd3 100644 --- a/src/components/resource-target-address-item.tsx +++ b/src/components/resource-target-address-item.tsx @@ -104,7 +104,7 @@ export function ResourceTargetAddressItem({ role="combobox" className={cn( "w-45 justify-between text-sm border-r pr-4 rounded-none h-8 hover:bg-transparent", - "rounded-l-md rounded-r-xs", + "", !proxyTarget.siteId && "text-muted-foreground" )} > @@ -142,7 +142,7 @@ export function ResourceTargetAddressItem({ }) } > - + {proxyTarget.method || "http"} From d3870f492002f367ba3a236a8848b63c1b23051b Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 29 Apr 2026 13:05:26 -0700 Subject: [PATCH 106/131] cert status in priv resources table first pass --- src/components/ClientResourcesTable.tsx | 33 ++- .../PrivateResourceCertAccessIndicator.tsx | 269 ++++++++++++++++++ 2 files changed, 296 insertions(+), 6 deletions(-) create mode 100644 src/components/PrivateResourceCertAccessIndicator.tsx diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index 5c5906ad5..2bb0c6f27 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -51,6 +51,7 @@ import { ResourceSitesStatusCell, type ResourceSiteRow } from "@app/components/ResourceSitesStatusCell"; +import { PrivateResourceCertAccessIndicator } from "@app/components/PrivateResourceCertAccessIndicator"; export type InternalResourceSiteRow = ResourceSiteRow; @@ -440,13 +441,33 @@ export default function ClientResourcesTable({ ); } if (resourceRow.mode === "http") { - const url = `${resourceRow.ssl ? "https" : "http"}://${resourceRow.fullDomain}`; + const domainId = resourceRow.domainId; + const fullDomain = resourceRow.fullDomain; + const url = `${resourceRow.ssl ? "https" : "http"}://${fullDomain}`; + const did = + resourceRow.ssl && + domainId != null && + domainId !== "" && + fullDomain != null && + fullDomain !== ""; + return ( - +
+ {did ? ( + + ) : null} +
+ +
+
); } return -; diff --git a/src/components/PrivateResourceCertAccessIndicator.tsx b/src/components/PrivateResourceCertAccessIndicator.tsx new file mode 100644 index 000000000..92748abc4 --- /dev/null +++ b/src/components/PrivateResourceCertAccessIndicator.tsx @@ -0,0 +1,269 @@ +"use client"; + +import { Button } from "@app/components/ui/button"; +import { + Popover, + PopoverAnchor, + PopoverContent +} from "@app/components/ui/popover"; +import { useCertificate } from "@app/hooks/useCertificate"; +import { cn } from "@app/lib/cn"; +import { + CheckCircle2, + Clock, + RotateCw, + XCircle +} from "lucide-react"; +import { useTranslations } from "next-intl"; +import { useCallback, useEffect, useRef, useState } from "react"; + +type PrivateResourceCertAccessIndicatorProps = { + orgId: string; + domainId: string; + fullDomain: string; +}; + +function getStatusColor(status: string) { + switch (status) { + case "valid": + return "text-green-500"; + case "pending": + case "requested": + return "text-yellow-500"; + case "expired": + case "failed": + return "text-red-500"; + default: + return "text-muted-foreground"; + } +} + +function getStatusIcon(status: string) { + switch (status) { + case "valid": + return CheckCircle2; + case "pending": + case "requested": + return Clock; + case "expired": + case "failed": + return XCircle; + default: + return Clock; + } +} + +function shouldShowRefreshButton(status: string, updatedAt: number) { + return ( + status === "failed" || + status === "expired" || + (status === "requested" && + updatedAt && + new Date(updatedAt * 1000).getTime() < Date.now() - 5 * 60 * 1000) + ); +} + +export function PrivateResourceCertAccessIndicator({ + orgId, + domainId, + fullDomain +}: PrivateResourceCertAccessIndicatorProps) { + const t = useTranslations(); + const [open, setOpen] = useState(false); + const closeTimerRef = useRef | null>(null); + + const { cert, certLoading, certError, refreshing, refreshCert } = + useCertificate({ + orgId, + domainId, + fullDomain, + autoFetch: true + }); + + const clearCloseTimer = useCallback(() => { + if (closeTimerRef.current != null) { + clearTimeout(closeTimerRef.current); + closeTimerRef.current = null; + } + }, []); + + const scheduleClose = useCallback(() => { + clearCloseTimer(); + closeTimerRef.current = setTimeout(() => setOpen(false), 280); + }, [clearCloseTimer]); + + const handleEnterOpen = useCallback(() => { + clearCloseTimer(); + setOpen(true); + }, [clearCloseTimer]); + + useEffect(() => { + return () => clearCloseTimer(); + }, [clearCloseTimer]); + + const handleRefresh = async () => { + await refreshCert(); + }; + + if (certLoading) { + return ( +
+ ); + } + + const isPending = cert?.status === "pending"; + const disableWildcard = cert?.domainType === "wildcard"; + + let TriggerIcon = Clock; + let triggerIconClass = "text-muted-foreground"; + if (certError) { + TriggerIcon = XCircle; + triggerIconClass = "text-red-500"; + } else if (cert) { + TriggerIcon = getStatusIcon(cert.status); + triggerIconClass = getStatusColor(cert.status); + } + + return ( + + + + + e.preventDefault()} + > +
+
+ {t("certificateStatus")} +
+ {certError ? ( + + + {certError} + + ) : !cert ? ( + + + {t("none", { defaultValue: "None" })} + + ) : ( + <> + {isPending && !disableWildcard ? ( + + ) : ( + + + {(() => { + const StatusIcon = getStatusIcon( + cert.status + ); + return ( + + ); + })()} + {cert.status.charAt(0).toUpperCase() + + cert.status.slice(1)} + {shouldShowRefreshButton( + cert.status, + cert.updatedAt + ) && !disableWildcard ? ( + + ) : null} + + + )} + {cert.errorMessage && + (cert.status === "failed" || + cert.status === "expired") ? ( +

+ {cert.errorMessage} +

+ ) : null} + {cert.expiresAt && cert.status === "valid" ? ( +

+ {t("expiresAt")}:{" "} + {new Date( + cert.expiresAt + ).toLocaleDateString()} +

+ ) : null} + + )} +
+
+
+ ); +} From e173f59d89357dce6841674a5212fb19533f1080 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 29 Apr 2026 13:44:35 -0700 Subject: [PATCH 107/131] visual improvements --- src/components/ClientResourcesTable.tsx | 14 +- .../PrivateResourceCertAccessIndicator.tsx | 148 ++---------------- src/components/ResourceSitesStatusCell.tsx | 8 +- 3 files changed, 27 insertions(+), 143 deletions(-) diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index 2bb0c6f27..9d2c46106 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -453,6 +453,13 @@ export default function ClientResourcesTable({ return (
+
+ +
{did ? ( ) : null} -
- -
); } diff --git a/src/components/PrivateResourceCertAccessIndicator.tsx b/src/components/PrivateResourceCertAccessIndicator.tsx index 92748abc4..8b06721a5 100644 --- a/src/components/PrivateResourceCertAccessIndicator.tsx +++ b/src/components/PrivateResourceCertAccessIndicator.tsx @@ -1,6 +1,6 @@ "use client"; -import { Button } from "@app/components/ui/button"; +import CertificateStatus from "@app/components/CertificateStatus"; import { Popover, PopoverAnchor, @@ -8,12 +8,7 @@ import { } from "@app/components/ui/popover"; import { useCertificate } from "@app/hooks/useCertificate"; import { cn } from "@app/lib/cn"; -import { - CheckCircle2, - Clock, - RotateCw, - XCircle -} from "lucide-react"; +import { CheckCircle2, Clock, XCircle } from "lucide-react"; import { useTranslations } from "next-intl"; import { useCallback, useEffect, useRef, useState } from "react"; @@ -53,16 +48,6 @@ function getStatusIcon(status: string) { } } -function shouldShowRefreshButton(status: string, updatedAt: number) { - return ( - status === "failed" || - status === "expired" || - (status === "requested" && - updatedAt && - new Date(updatedAt * 1000).getTime() < Date.now() - 5 * 60 * 1000) - ); -} - export function PrivateResourceCertAccessIndicator({ orgId, domainId, @@ -72,13 +57,12 @@ export function PrivateResourceCertAccessIndicator({ const [open, setOpen] = useState(false); const closeTimerRef = useRef | null>(null); - const { cert, certLoading, certError, refreshing, refreshCert } = - useCertificate({ - orgId, - domainId, - fullDomain, - autoFetch: true - }); + const { cert, certLoading, certError } = useCertificate({ + orgId, + domainId, + fullDomain, + autoFetch: true + }); const clearCloseTimer = useCallback(() => { if (closeTimerRef.current != null) { @@ -101,10 +85,6 @@ export function PrivateResourceCertAccessIndicator({ return () => clearCloseTimer(); }, [clearCloseTimer]); - const handleRefresh = async () => { - await refreshCert(); - }; - if (certLoading) { return (
e.preventDefault()} > -
-
- {t("certificateStatus")} -
- {certError ? ( - - - {certError} - - ) : !cert ? ( - - - {t("none", { defaultValue: "None" })} - - ) : ( - <> - {isPending && !disableWildcard ? ( - - ) : ( - - - {(() => { - const StatusIcon = getStatusIcon( - cert.status - ); - return ( - - ); - })()} - {cert.status.charAt(0).toUpperCase() + - cert.status.slice(1)} - {shouldShowRefreshButton( - cert.status, - cert.updatedAt - ) && !disableWildcard ? ( - - ) : null} - - - )} - {cert.errorMessage && - (cert.status === "failed" || - cert.status === "expired") ? ( -

- {cert.errorMessage} -

- ) : null} - {cert.expiresAt && cert.status === "valid" ? ( -

- {t("expiresAt")}:{" "} - {new Date( - cert.expiresAt - ).toLocaleDateString()} -

- ) : null} - - )} -
+
); diff --git a/src/components/ResourceSitesStatusCell.tsx b/src/components/ResourceSitesStatusCell.tsx index 8a33c284d..4560c2f26 100644 --- a/src/components/ResourceSitesStatusCell.tsx +++ b/src/components/ResourceSitesStatusCell.tsx @@ -52,7 +52,7 @@ function aggregateStatusDotClass(status: AggregateSitesStatus): string { return "bg-neutral-500"; case "unknown": default: - return "bg-transparent"; + return "border border-muted-foreground/50 bg-transparent"; } } @@ -107,10 +107,10 @@ export function ResourceSitesStatusCell({ className={cn( "h-2 w-2 shrink-0 rounded-full", !hasKnownStatus - ? "bg-transparent" + ? "border border-muted-foreground/50 bg-transparent" : isOnline - ? "bg-green-500" - : "bg-neutral-500" + ? "bg-green-500" + : "bg-neutral-500" )} /> From 2ffe254879e5561eefd492a7c91f7c30b1f55f68 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 14:08:42 -0700 Subject: [PATCH 108/131] Dont include site resources on the cloud --- .../private/lib/traefik/getTraefikConfig.ts | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/server/private/lib/traefik/getTraefikConfig.ts b/server/private/lib/traefik/getTraefikConfig.ts index 6427bec4f..481192fb5 100644 --- a/server/private/lib/traefik/getTraefikConfig.ts +++ b/server/private/lib/traefik/getTraefikConfig.ts @@ -277,37 +277,37 @@ export async function getTraefikConfig( }); }); - // Query siteResources in HTTP mode with SSL enabled and aliases - cert generation / HTTPS edge - const siteResourcesWithFullDomain = await db - .select({ - siteResourceId: siteResources.siteResourceId, - fullDomain: siteResources.fullDomain, - mode: siteResources.mode - }) - .from(siteResources) - .innerJoin( - siteNetworks, - eq(siteResources.networkId, siteNetworks.networkId) - ) - .innerJoin(sites, eq(siteNetworks.siteId, sites.siteId)) - .where( - and( - eq(siteResources.enabled, true), - isNotNull(siteResources.fullDomain), - eq(siteResources.mode, "http"), - eq(siteResources.ssl, true), - or( - eq(sites.exitNodeId, exitNodeId), - and( - isNull(sites.exitNodeId), - sql`(${siteTypes.includes("local") ? 1 : 0} = 1)`, - eq(sites.type, "local"), - sql`(${build != "saas" ? 1 : 0} = 1)` - ) - ), - inArray(sites.type, siteTypes) + let siteResourcesWithFullDomain: { + siteResourceId: number; + fullDomain: string | null; + mode: "http" | "host" | "cidr"; + }[] = []; + if (build == "enterprise") { + // we dont want to do this on the cloud + // Query siteResources in HTTP mode with SSL enabled and aliases - cert generation / HTTPS edge + siteResourcesWithFullDomain = await db + .select({ + siteResourceId: siteResources.siteResourceId, + fullDomain: siteResources.fullDomain, + mode: siteResources.mode + }) + .from(siteResources) + .innerJoin( + siteNetworks, + eq(siteResources.networkId, siteNetworks.networkId) ) - ); + .innerJoin(sites, eq(siteNetworks.siteId, sites.siteId)) + .where( + and( + eq(siteResources.enabled, true), + isNotNull(siteResources.fullDomain), + eq(siteResources.mode, "http"), + eq(siteResources.ssl, true), + eq(sites.exitNodeId, exitNodeId), + inArray(sites.type, siteTypes) + ) + ); + } let validCerts: CertificateResult[] = []; if (privateConfig.getRawPrivateConfig().flags.use_pangolin_dns) { From a55842ffff8ae3c2bd974ca198ee0cc867a53830 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 14:29:15 -0700 Subject: [PATCH 109/131] Scrape certs from ALL resolvers --- server/private/lib/acmeCertSync.ts | 41 ++++++++++++++++++---------- server/private/lib/readConfigFile.ts | 1 - 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/server/private/lib/acmeCertSync.ts b/server/private/lib/acmeCertSync.ts index 570ccfd75..23b24b50b 100644 --- a/server/private/lib/acmeCertSync.ts +++ b/server/private/lib/acmeCertSync.ts @@ -274,10 +274,7 @@ function detectWildcard( return { wildcard: false, wildcardSan: null }; } -async function syncAcmeCerts( - acmeJsonPath: string, - resolver: string -): Promise { +async function syncAcmeCerts(acmeJsonPath: string): Promise { let raw: string; try { raw = fs.readFileSync(acmeJsonPath, "utf8"); @@ -294,15 +291,32 @@ async function syncAcmeCerts( return; } - const resolverData = acmeJson[resolver]; - if (!resolverData || !Array.isArray(resolverData.Certificates)) { - logger.debug( - `acmeCertSync: no certificates found for resolver "${resolver}"` - ); + const resolvers = Object.keys(acmeJson || {}); + if (resolvers.length === 0) { + logger.debug(`acmeCertSync: no resolvers found in acme.json`); return; } - for (const cert of resolverData.Certificates) { + // Collect certificates from every resolver. If the same domain appears in + // multiple resolvers, the last one wins (resolvers iterated in object order). + const allCerts: AcmeCert[] = []; + for (const resolver of resolvers) { + const resolverData = acmeJson[resolver]; + if (!resolverData || !Array.isArray(resolverData.Certificates)) { + logger.debug( + `acmeCertSync: no certificates found for resolver "${resolver}"` + ); + continue; + } + logger.debug( + `acmeCertSync: found ${resolverData.Certificates.length} certificate(s) for resolver "${resolver}"` + ); + for (const cert of resolverData.Certificates) { + allCerts.push(cert); + } + } + + for (const cert of allCerts) { const domain = cert?.domain?.main; if (!domain || typeof domain !== "string") { @@ -531,20 +545,19 @@ export function initAcmeCertSync(): void { const acmeJsonPath = privateConfigData.acme?.acme_json_path ?? "config/letsencrypt/acme.json"; - const resolver = privateConfigData.acme?.resolver ?? "letsencrypt"; const intervalMs = privateConfigData.acme?.sync_interval_ms ?? 5000; logger.debug( - `acmeCertSync: starting ACME cert sync from "${acmeJsonPath}" using resolver "${resolver}" every ${intervalMs}ms` + `acmeCertSync: starting ACME cert sync from "${acmeJsonPath}" across all resolvers every ${intervalMs}ms` ); // Run immediately on init, then on the configured interval - syncAcmeCerts(acmeJsonPath, resolver).catch((err) => { + syncAcmeCerts(acmeJsonPath).catch((err) => { logger.error(`acmeCertSync: error during initial sync: ${err}`); }); setInterval(() => { - syncAcmeCerts(acmeJsonPath, resolver).catch((err) => { + syncAcmeCerts(acmeJsonPath).catch((err) => { logger.error(`acmeCertSync: error during sync: ${err}`); }); }, intervalMs); diff --git a/server/private/lib/readConfigFile.ts b/server/private/lib/readConfigFile.ts index c9cb1535a..056624159 100644 --- a/server/private/lib/readConfigFile.ts +++ b/server/private/lib/readConfigFile.ts @@ -102,7 +102,6 @@ export const privateConfigSchema = z.object({ .string() .optional() .default("config/letsencrypt/acme.json"), - resolver: z.string().optional().default("letsencrypt"), sync_interval_ms: z.number().optional().default(5000) }) .optional(), From 698cd868a845c0f203d6239a9dc7f988d70ccdcd Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 29 Apr 2026 14:47:26 -0700 Subject: [PATCH 110/131] show cert status in public reosurces table --- messages/en-US.json | 1 + .../[orgId]/settings/resources/proxy/page.tsx | 1 + src/components/CertificateStatus.tsx | 364 ++++++++++-------- src/components/ClientResourcesTable.tsx | 16 +- src/components/ProxyResourcesTable.tsx | 51 ++- ...or.tsx => ResourceAccessCertIndicator.tsx} | 116 +++--- src/hooks/useCertificate.ts | 30 +- 7 files changed, 344 insertions(+), 235 deletions(-) rename src/components/{PrivateResourceCertAccessIndicator.tsx => ResourceAccessCertIndicator.tsx} (55%) diff --git a/messages/en-US.json b/messages/en-US.json index 1b7e446fb..eb4d3ae3c 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Create Admin Account", "setupErrorCreateAdmin": "An error occurred while creating the server admin account.", "certificateStatus": "Certificate", + "certificateStatusAutoRefreshHint": "Status refreshes automatically.", "loading": "Loading", "loadingAnalytics": "Loading Analytics", "restart": "Restart", diff --git a/src/app/[orgId]/settings/resources/proxy/page.tsx b/src/app/[orgId]/settings/resources/proxy/page.tsx index 5d727d905..0bbc8aa66 100644 --- a/src/app/[orgId]/settings/resources/proxy/page.tsx +++ b/src/app/[orgId]/settings/resources/proxy/page.tsx @@ -120,6 +120,7 @@ export default async function ProxyResourcesPage( : "not_protected", enabled: resource.enabled, domainId: resource.domainId || undefined, + fullDomain: resource.fullDomain ?? null, ssl: resource.ssl, targets: resource.targets?.map((target) => ({ targetId: target.targetId, diff --git a/src/components/CertificateStatus.tsx b/src/components/CertificateStatus.tsx index 0d4fa9026..cc22b1e88 100644 --- a/src/components/CertificateStatus.tsx +++ b/src/components/CertificateStatus.tsx @@ -1,10 +1,187 @@ "use client"; import { Button } from "@/components/ui/button"; -import { CheckCircle2, Clock, Loader2, RotateCw, XCircle } from "lucide-react"; +import { FileBadge, RotateCw } from "lucide-react"; import { useCertificate } from "@app/hooks/useCertificate"; +import type { GetCertificateResponse } from "@server/routers/certificates/types"; import { useTranslations } from "next-intl"; +export type CertificateStatusContentProps = { + cert: GetCertificateResponse | null; + certLoading: boolean; + certError: string | null; + refreshing: boolean; + refreshCert: () => Promise; + showLabel?: boolean; + className?: string; + onRefresh?: () => void; +}; + +/** Presentation-only certificate row (shared hook state possible via props). */ +export function CertificateStatusContent({ + cert, + certLoading, + certError, + refreshing, + refreshCert, + showLabel = true, + className = "", + onRefresh +}: CertificateStatusContentProps) { + const t = useTranslations(); + + const labelClass = + "inline-flex shrink-0 items-center self-center text-sm font-medium leading-none"; + const valueClass = "inline-flex items-center gap-2 text-sm leading-none"; + + const handleRefresh = async () => { + await refreshCert(); + onRefresh?.(); + }; + + const getStatusColor = (status: string) => { + switch (status) { + case "valid": + return "text-green-500"; + case "pending": + case "requested": + return "text-yellow-500"; + case "expired": + case "failed": + return "text-red-500"; + default: + return "text-muted-foreground"; + } + }; + + const shouldShowRefreshButton = (status: string, updatedAt: number) => { + return ( + status === "failed" || + status === "expired" || + (status === "requested" && + updatedAt && + new Date(updatedAt * 1000).getTime() < + Date.now() - 5 * 60 * 1000) + ); + }; + + if (certLoading) { + return ( +
+ {showLabel && ( + + {t("certificateStatus")}: + + )} + + + {t("loading")} + +
+ ); + } + + if (certError) { + return ( +
+ {showLabel && ( + + {t("certificateStatus")}: + + )} + + + {certError} + +
+ ); + } + + if (!cert) { + return ( +
+ {showLabel && ( + + {t("certificateStatus")}: + + )} + + + {t("none", { defaultValue: "None" })} + +
+ ); + } + + const isPending = cert.status === "pending"; + const disableRestartButton = cert.domainType === "wildcard"; + + return ( +
+ {showLabel && ( + {t("certificateStatus")}: + )} + {isPending && !disableRestartButton ? ( + + ) : ( + + + {cert.status.charAt(0).toUpperCase() + cert.status.slice(1)} + {shouldShowRefreshButton(cert.status, cert.updatedAt) && + !disableRestartButton ? ( + + ) : null} + + )} +
+ ); +} + type CertificateStatusProps = { orgId: string; domainId: string; @@ -28,174 +205,25 @@ export default function CertificateStatus({ polling = false, pollingInterval = 5000 }: CertificateStatusProps) { - const t = useTranslations(); - const { cert, certLoading, certError, refreshing, refreshCert } = - useCertificate({ - orgId, - domainId, - fullDomain, - autoFetch, - polling, - pollingInterval - }); - - const handleRefresh = async () => { - await refreshCert(); - onRefresh?.(); - }; - - const getStatusColor = (status: string) => { - switch (status) { - case "valid": - return "text-green-500"; - case "pending": - case "requested": - return "text-yellow-500"; - case "expired": - case "failed": - return "text-red-500"; - default: - return "text-muted-foreground"; - } - }; - - const getStatusIcon = (status: string) => { - switch (status) { - case "valid": - return CheckCircle2; - case "pending": - case "requested": - return Clock; - case "expired": - case "failed": - return XCircle; - default: - return Clock; - } - }; - - const shouldShowRefreshButton = (status: string, updatedAt: number) => { - return ( - status === "failed" || - status === "expired" || - (status === "requested" && - updatedAt && - new Date(updatedAt * 1000).getTime() < - Date.now() - 5 * 60 * 1000) - ); - }; - - if (certLoading) { - return ( -
- {showLabel && ( - - {t("certificateStatus")}: - - )} - - - {t("loading")} - -
- ); - } - - if (certError) { - return ( -
- {showLabel && ( - - {t("certificateStatus")}: - - )} - - - {certError} - -
- ); - } - - if (!cert) { - return ( -
- {showLabel && ( - - {t("certificateStatus")}: - - )} - - - {t("none", { defaultValue: "None" })} - -
- ); - } - - const isPending = cert.status === "pending"; - const disableRestartButton = cert.domainType === "wildcard"; - const StatusIcon = getStatusIcon(cert.status); + const hook = useCertificate({ + orgId, + domainId, + fullDomain, + autoFetch, + polling, + pollingInterval + }); return ( -
- {showLabel && ( - - {t("certificateStatus")}: - - )} - {isPending && !disableRestartButton ? ( - - ) : ( - - - - {cert.status.charAt(0).toUpperCase() + - cert.status.slice(1)} - {shouldShowRefreshButton(cert.status, cert.updatedAt) && - !disableRestartButton ? ( - - ) : null} - - - )} -
+ ); } diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index 9d2c46106..e8ff8ff62 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -51,7 +51,7 @@ import { ResourceSitesStatusCell, type ResourceSiteRow } from "@app/components/ResourceSitesStatusCell"; -import { PrivateResourceCertAccessIndicator } from "@app/components/PrivateResourceCertAccessIndicator"; +import { ResourceAccessCertIndicator } from "@app/components/ResourceAccessCertIndicator"; export type InternalResourceSiteRow = ResourceSiteRow; @@ -453,6 +453,13 @@ export default function ClientResourcesTable({ return (
+ {did ? ( + + ) : null}
- {did ? ( - - ) : null}
); } diff --git a/src/components/ProxyResourcesTable.tsx b/src/components/ProxyResourcesTable.tsx index 384ad35c6..f65ec0b0c 100644 --- a/src/components/ProxyResourcesTable.tsx +++ b/src/components/ProxyResourcesTable.tsx @@ -64,6 +64,7 @@ import z from "zod"; import { ColumnFilterButton } from "./ColumnFilterButton"; import { ControlledDataTable } from "./ui/controlled-data-table"; import UptimeMiniBar from "./UptimeMiniBar"; +import { ResourceAccessCertIndicator } from "@app/components/ResourceAccessCertIndicator"; export type TargetHealth = { targetId: number; @@ -86,6 +87,8 @@ export type ResourceRow = { proxyPort: number | null; enabled: boolean; domainId?: string; + /** Hostname for certificate API (without scheme); distinct from `domain` URL shown in Access column */ + fullDomain?: string | null; ssl: boolean; targetHost?: string; targetPort?: number; @@ -266,7 +269,7 @@ export default function ProxyResourcesTable({ {overallStatus === "healthy" && - t("resourcesTableHealthy")} + t("resourcesTableHealthy")} {overallStatus === "degraded" && t("resourcesTableDegraded")} {overallStatus === "unhealthy" && @@ -488,7 +491,12 @@ export default function ProxyResourcesTable({ ), cell: ({ row }) => { const resourceRow = row.original; - return ; + return ( + + ); }, sortingFn: (rowA, rowB) => { const statusA = rowA.original.health; @@ -520,24 +528,51 @@ export default function ProxyResourcesTable({ header: () => {t("access")}, cell: ({ row }) => { const resourceRow = row.original; - return ( -
- {!resourceRow.http ? ( + + if (!resourceRow.http) { + return ( +
- ) : !resourceRow.domainId ? ( +
+ ); + } + + if (!resourceRow.domainId) { + return ( +
- ) : ( +
+ ); + } + + const domainId = resourceRow.domainId; + const certHostname = resourceRow.fullDomain; + const showHttpsCertIndicator = + resourceRow.ssl && + certHostname != null && + certHostname !== ""; + + return ( +
+ {showHttpsCertIndicator ? ( + + ) : null} +
- )} +
); } diff --git a/src/components/PrivateResourceCertAccessIndicator.tsx b/src/components/ResourceAccessCertIndicator.tsx similarity index 55% rename from src/components/PrivateResourceCertAccessIndicator.tsx rename to src/components/ResourceAccessCertIndicator.tsx index 8b06721a5..40ddfbfab 100644 --- a/src/components/PrivateResourceCertAccessIndicator.tsx +++ b/src/components/ResourceAccessCertIndicator.tsx @@ -1,6 +1,6 @@ "use client"; -import CertificateStatus from "@app/components/CertificateStatus"; +import { CertificateStatusContent } from "@app/components/CertificateStatus"; import { Popover, PopoverAnchor, @@ -8,11 +8,17 @@ import { } from "@app/components/ui/popover"; import { useCertificate } from "@app/hooks/useCertificate"; import { cn } from "@app/lib/cn"; -import { CheckCircle2, Clock, XCircle } from "lucide-react"; +import { FileBadge } from "lucide-react"; import { useTranslations } from "next-intl"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { + useCallback, + useEffect, + useRef, + useState, + type ReactNode +} from "react"; -type PrivateResourceCertAccessIndicatorProps = { +type ResourceAccessCertIndicatorProps = { orgId: string; domainId: string; fullDomain: string; @@ -33,37 +39,32 @@ function getStatusColor(status: string) { } } -function getStatusIcon(status: string) { - switch (status) { - case "valid": - return CheckCircle2; - case "pending": - case "requested": - return Clock; - case "expired": - case "failed": - return XCircle; - default: - return Clock; - } -} - -export function PrivateResourceCertAccessIndicator({ +/** Compact cert icon + hover popover with full certificate status (shared by proxy and client resource tables). */ +export function ResourceAccessCertIndicator({ orgId, domainId, fullDomain -}: PrivateResourceCertAccessIndicatorProps) { +}: ResourceAccessCertIndicatorProps) { const t = useTranslations(); const [open, setOpen] = useState(false); const closeTimerRef = useRef | null>(null); - const { cert, certLoading, certError } = useCertificate({ + const certificate = useCertificate({ orgId, domainId, fullDomain, - autoFetch: true + autoFetch: true, + polling: open, + pollingInterval: 5000 }); + const { cert, certLoading, certError, refreshing, fetchCert } = certificate; + + useEffect(() => { + if (!open) return; + void fetchCert(false); + }, [open, fetchCert]); + const clearCloseTimer = useCallback(() => { if (closeTimerRef.current != null) { clearTimeout(closeTimerRef.current); @@ -85,24 +86,46 @@ export function PrivateResourceCertAccessIndicator({ return () => clearCloseTimer(); }, [clearCloseTimer]); + let triggerBody: ReactNode; if (certLoading) { - return ( + triggerBody = (
); - } - - let TriggerIcon = Clock; - let triggerIconClass = "text-muted-foreground"; - if (certError) { - TriggerIcon = XCircle; - triggerIconClass = "text-red-500"; + } else if (refreshing) { + triggerBody = ( + + ); + } else if (certError) { + triggerBody = ( + + ); } else if (cert) { - TriggerIcon = getStatusIcon(cert.status); - triggerIconClass = getStatusColor(cert.status); + triggerBody = ( + + ); + } else { + triggerBody = ( + + ); } return ( @@ -125,10 +148,7 @@ export function PrivateResourceCertAccessIndicator({ aria-haspopup="dialog" aria-label={t("certificateStatus")} > - + {triggerBody} e.preventDefault()} > - +
+ +

+ {t("certificateStatusAutoRefreshHint")} +

+
); diff --git a/src/hooks/useCertificate.ts b/src/hooks/useCertificate.ts index 217359f98..cd0802ef0 100644 --- a/src/hooks/useCertificate.ts +++ b/src/hooks/useCertificate.ts @@ -20,7 +20,7 @@ type UseCertificateReturn = { certLoading: boolean; certError: string | null; refreshing: boolean; - fetchCert: () => Promise; + fetchCert: (showLoading?: boolean) => Promise; refreshCert: () => Promise; clearCert: () => void; }; @@ -102,15 +102,33 @@ export function useCertificate({ } }, [autoFetch, orgId, domainId, fullDomain, fetchCert]); - // Polling effect useEffect(() => { if (!polling || !orgId || !domainId || !fullDomain) return; - const interval = setInterval(() => { - fetchCert(false); // Don't show loading for polling - }, pollingInterval); + const POLL_JITTER_MS = 1000; + let cancelled = false; + let timeoutId: ReturnType; - return () => clearInterval(interval); + const scheduleNext = () => { + const jitter = (Math.random() * 2 - 1) * POLL_JITTER_MS; + const delayMs = Math.max( + 1000, + Math.round(pollingInterval + jitter) + ); + + timeoutId = setTimeout(() => { + if (cancelled) return; + void fetchCert(false); + scheduleNext(); + }, delayMs); + }; + + scheduleNext(); + + return () => { + cancelled = true; + clearTimeout(timeoutId); + }; }, [polling, orgId, domainId, fullDomain, pollingInterval, fetchCert]); return { From 143f362a48337d584d2089c0d90798d65cce9e10 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:09 -0700 Subject: [PATCH 111/131] New translations en-us.json (French) [ci skip] --- messages/fr-FR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/fr-FR.json b/messages/fr-FR.json index ff9cca43d..9dbb4797e 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Créer un compte administrateur", "setupErrorCreateAdmin": "Une erreur s'est produite lors de la création du compte administrateur du serveur.", "certificateStatus": "Certificat", + "certificateStatusAutoRefreshHint": "L'état se rafraîchit automatiquement.", "loading": "Chargement", "loadingAnalytics": "Chargement de l'analyse", "restart": "Redémarrer", From d83318cbfc1b4ddb0012589b400706930b9b6463 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:11 -0700 Subject: [PATCH 112/131] New translations en-us.json (Bulgarian) [ci skip] --- messages/bg-BG.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/bg-BG.json b/messages/bg-BG.json index eb129ee32..0b743adbc 100644 --- a/messages/bg-BG.json +++ b/messages/bg-BG.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Създаване на админ акаунт", "setupErrorCreateAdmin": "Възникна грешка при създаване на админ акаунт.", "certificateStatus": "Сертификат", + "certificateStatusAutoRefreshHint": "Състоянието се опреснява автоматично.", "loading": "Зареждане", "loadingAnalytics": "Зареждане на анализи", "restart": "Рестарт", From 6c93aca444f4a3d24a358bbaa8a57cbf4c8bbbb4 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:13 -0700 Subject: [PATCH 113/131] New translations en-us.json (Czech) [ci skip] --- messages/cs-CZ.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/messages/cs-CZ.json b/messages/cs-CZ.json index 181bff665..309d52a90 100644 --- a/messages/cs-CZ.json +++ b/messages/cs-CZ.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Vytvořit účet správce", "setupErrorCreateAdmin": "Došlo k chybě při vytváření účtu správce serveru.", "certificateStatus": "Certifikát", + "certificateStatusAutoRefreshHint": "Stav se automaticky obnovuje.", "loading": "Načítání", "loadingAnalytics": "Načítání analytiky", "restart": "Restartovat", @@ -3167,7 +3168,7 @@ "publicIpEndpoint": "Koncový bod", "lastTriggeredAt": "Poslední spouštěč", "reject": "Odmítnout", - "uptimeDaysAgo": "{count} days ago", + "uptimeDaysAgo": "Před {count} dny", "uptimeToday": "Dnes", "uptimeNoDataAvailable": "Dostupná žádná data", "uptimeSuffix": "doba dostupnosti", From 6284930fce0276bd224199eccacbf572e2ae829d Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:15 -0700 Subject: [PATCH 114/131] New translations en-us.json (German) [ci skip] --- messages/de-DE.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/de-DE.json b/messages/de-DE.json index c69483a68..74247798f 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Admin-Konto erstellen", "setupErrorCreateAdmin": "Beim Erstellen des Server-Admin-Kontos ist ein Fehler aufgetreten.", "certificateStatus": "Zertifikat", + "certificateStatusAutoRefreshHint": "Der Status wird automatisch aktualisiert.", "loading": "Laden", "loadingAnalytics": "Analytik wird geladen", "restart": "Neustart", From 175f10a51decfdef443b00a25a6e43f8f67ddcd3 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:16 -0700 Subject: [PATCH 115/131] New translations en-us.json (Italian) [ci skip] --- messages/it-IT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/it-IT.json b/messages/it-IT.json index 4c5ba6f12..9e810c259 100644 --- a/messages/it-IT.json +++ b/messages/it-IT.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Crea Account Admin", "setupErrorCreateAdmin": "Si è verificato un errore durante la creazione dell'account amministratore del server.", "certificateStatus": "Certificato", + "certificateStatusAutoRefreshHint": "Lo stato si aggiorna automaticamente.", "loading": "Caricamento", "loadingAnalytics": "Caricamento Delle Analisi", "restart": "Riavvia", From faa2e97530537b615667e5dc173abbcf24c23f54 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:18 -0700 Subject: [PATCH 116/131] New translations en-us.json (Korean) [ci skip] --- messages/ko-KR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/ko-KR.json b/messages/ko-KR.json index d6936cecf..e98fc65fa 100644 --- a/messages/ko-KR.json +++ b/messages/ko-KR.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "관리자 계정 생성", "setupErrorCreateAdmin": "서버 관리자 계정을 생성하는 동안 오류가 발생했습니다.", "certificateStatus": "인증서", + "certificateStatusAutoRefreshHint": "상태가 자동으로 새로 고쳐집니다.", "loading": "로딩 중", "loadingAnalytics": "분석 로딩 중", "restart": "재시작", From 98dfd05f065682b2e4ac724c675253665484e9f0 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:20 -0700 Subject: [PATCH 117/131] New translations en-us.json (Dutch) [ci skip] --- messages/nl-NL.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/nl-NL.json b/messages/nl-NL.json index 6dc3cd158..09096c424 100644 --- a/messages/nl-NL.json +++ b/messages/nl-NL.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Maak een beheeraccount aan", "setupErrorCreateAdmin": "Er is een fout opgetreden bij het maken van het serverbeheerdersaccount.", "certificateStatus": "Certificaat", + "certificateStatusAutoRefreshHint": "Status ververst automatisch.", "loading": "Bezig met laden", "loadingAnalytics": "Laden van Analytics", "restart": "Herstarten", From 3c265ee57747510cd06e1154240e5aec5b43041f Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:22 -0700 Subject: [PATCH 118/131] New translations en-us.json (Polish) [ci skip] --- messages/pl-PL.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/pl-PL.json b/messages/pl-PL.json index 9d9968001..38bbea59a 100644 --- a/messages/pl-PL.json +++ b/messages/pl-PL.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Utwórz konto administratora", "setupErrorCreateAdmin": "Wystąpił błąd podczas tworzenia konta administratora serwera.", "certificateStatus": "Certyfikat", + "certificateStatusAutoRefreshHint": "Status odświeża się automatycznie.", "loading": "Ładowanie", "loadingAnalytics": "Ładowanie Analityki", "restart": "Uruchom ponownie", From c02c3eaa4ad5b54dd29da33b039136f906b86867 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:23 -0700 Subject: [PATCH 119/131] New translations en-us.json (Portuguese) [ci skip] --- messages/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/pt-PT.json b/messages/pt-PT.json index 6d0d751a4..2cd442720 100644 --- a/messages/pt-PT.json +++ b/messages/pt-PT.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Criar Conta de Administrador", "setupErrorCreateAdmin": "Ocorreu um erro ao criar a conta de administrador do servidor.", "certificateStatus": "Certificado", + "certificateStatusAutoRefreshHint": "Status atualiza automaticamente.", "loading": "Carregando", "loadingAnalytics": "Carregando Analytics", "restart": "Reiniciar", From 1c57473b6d33b93fedafeb62894bd71257264b81 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:25 -0700 Subject: [PATCH 120/131] New translations en-us.json (Russian) [ci skip] --- messages/ru-RU.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/ru-RU.json b/messages/ru-RU.json index 6490040cb..4899a3f97 100644 --- a/messages/ru-RU.json +++ b/messages/ru-RU.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Создать учётную запись администратора", "setupErrorCreateAdmin": "Произошла ошибка при создании учётной записи администратора сервера.", "certificateStatus": "Сертификат", + "certificateStatusAutoRefreshHint": "Статус обновляется автоматически.", "loading": "Загрузка", "loadingAnalytics": "Загрузка аналитики", "restart": "Перезагрузка", From b36927c7a0007da507c4bf8cc4d8c9b9212e664e Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:27 -0700 Subject: [PATCH 121/131] New translations en-us.json (Turkish) [ci skip] --- messages/tr-TR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/tr-TR.json b/messages/tr-TR.json index 2676d2fba..4d36aebba 100644 --- a/messages/tr-TR.json +++ b/messages/tr-TR.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Yönetici Hesabı Oluştur", "setupErrorCreateAdmin": "Sunucu yönetici hesabı oluşturulurken bir hata oluştu.", "certificateStatus": "Sertifika", + "certificateStatusAutoRefreshHint": "Durum otomatik olarak yenilenir.", "loading": "Yükleniyor", "loadingAnalytics": "Analiz Yükleniyor", "restart": "Yeniden Başlat", From 994fb456c202668e3dc7cf120cdb74488596a6f6 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:29 -0700 Subject: [PATCH 122/131] New translations en-us.json (Chinese Simplified) [ci skip] --- messages/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 58ee66d44..aa7ad9ed0 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "创建管理员帐户", "setupErrorCreateAdmin": "创建服务器管理员账户时发生错误。", "certificateStatus": "证书", + "certificateStatusAutoRefreshHint": "状态自动刷新。", "loading": "加载中", "loadingAnalytics": "加载分析", "restart": "重启", From b53cc397befe96fd2ab1e2d445d971ccff807c00 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:30 -0700 Subject: [PATCH 123/131] New translations en-us.json (Norwegian Bokmal) [ci skip] --- messages/nb-NO.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/nb-NO.json b/messages/nb-NO.json index e44022572..d6c674801 100644 --- a/messages/nb-NO.json +++ b/messages/nb-NO.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Opprett administratorkonto", "setupErrorCreateAdmin": "En feil oppstod under opprettelsen av serveradministratorkontoen.", "certificateStatus": "Sertifikat", + "certificateStatusAutoRefreshHint": "Status oppdateres automatisk.", "loading": "Laster inn", "loadingAnalytics": "Laster inn analyser", "restart": "Start på nytt", From b9f3f90de676d0bf2c29bbb2c1b939d86083378f Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Wed, 29 Apr 2026 14:54:32 -0700 Subject: [PATCH 124/131] New translations en-us.json (Spanish) [ci skip] --- messages/es-ES.json | 1 + 1 file changed, 1 insertion(+) diff --git a/messages/es-ES.json b/messages/es-ES.json index cf8c64f96..ea5e33b25 100644 --- a/messages/es-ES.json +++ b/messages/es-ES.json @@ -1597,6 +1597,7 @@ "createAdminAccount": "Crear cuenta de administrador", "setupErrorCreateAdmin": "Se produjo un error al crear la cuenta de administrador del servidor.", "certificateStatus": "Certificado", + "certificateStatusAutoRefreshHint": "El estado se actualiza automáticamente.", "loading": "Cargando", "loadingAnalytics": "Cargando analíticas", "restart": "Reiniciar", From 0a0817b860dd5fc246553c434eb6dcaaaebf8855 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 15:15:43 -0700 Subject: [PATCH 125/131] Restrict alerting --- server/lib/billing/tierMatrix.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/lib/billing/tierMatrix.ts b/server/lib/billing/tierMatrix.ts index 3393dd324..f44cb8bf6 100644 --- a/server/lib/billing/tierMatrix.ts +++ b/server/lib/billing/tierMatrix.ts @@ -64,7 +64,7 @@ export const tierMatrix: Record = { [TierFeature.SIEM]: ["enterprise"], [TierFeature.HTTPPrivateResources]: ["tier3", "enterprise"], [TierFeature.DomainNamespaces]: ["tier1", "tier2", "tier3", "enterprise"], - [TierFeature.StandaloneHealthChecks]: ["tier2", "tier3", "enterprise"], - [TierFeature.AlertingRules]: ["tier2", "tier3", "enterprise"], + [TierFeature.StandaloneHealthChecks]: ["tier3", "enterprise"], + [TierFeature.AlertingRules]: ["tier3", "enterprise"], [TierFeature.WildcardSubdomain]: ["tier1", "tier2", "tier3", "enterprise"] }; From dcfc7822f4c1f2063c84dbd4520dfc71889fbb45 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 29 Apr 2026 16:03:59 -0700 Subject: [PATCH 126/131] hide cert in public resources col on oss --- src/components/ClientResourcesTable.tsx | 2 ++ src/components/ProxyResourcesTable.tsx | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/components/ClientResourcesTable.tsx b/src/components/ClientResourcesTable.tsx index e8ff8ff62..88b1e938e 100644 --- a/src/components/ClientResourcesTable.tsx +++ b/src/components/ClientResourcesTable.tsx @@ -52,6 +52,7 @@ import { type ResourceSiteRow } from "@app/components/ResourceSitesStatusCell"; import { ResourceAccessCertIndicator } from "@app/components/ResourceAccessCertIndicator"; +import { build } from "@server/build"; export type InternalResourceSiteRow = ResourceSiteRow; @@ -445,6 +446,7 @@ export default function ClientResourcesTable({ const fullDomain = resourceRow.fullDomain; const url = `${resourceRow.ssl ? "https" : "http"}://${fullDomain}`; const did = + build !== "oss" && resourceRow.ssl && domainId != null && domainId !== "" && diff --git a/src/components/ProxyResourcesTable.tsx b/src/components/ProxyResourcesTable.tsx index f65ec0b0c..813d232cc 100644 --- a/src/components/ProxyResourcesTable.tsx +++ b/src/components/ProxyResourcesTable.tsx @@ -65,6 +65,7 @@ import { ColumnFilterButton } from "./ColumnFilterButton"; import { ControlledDataTable } from "./ui/controlled-data-table"; import UptimeMiniBar from "./UptimeMiniBar"; import { ResourceAccessCertIndicator } from "@app/components/ResourceAccessCertIndicator"; +import { build } from "@server/build"; export type TargetHealth = { targetId: number; @@ -554,6 +555,7 @@ export default function ProxyResourcesTable({ const domainId = resourceRow.domainId; const certHostname = resourceRow.fullDomain; const showHttpsCertIndicator = + build !== "oss" && resourceRow.ssl && certHostname != null && certHostname !== ""; From 81197f8a869939c3c41b5431855c0f10c4f881b3 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 16:42:10 -0700 Subject: [PATCH 127/131] Update the database if the wildcard changes --- server/private/lib/acmeCertSync.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/private/lib/acmeCertSync.ts b/server/private/lib/acmeCertSync.ts index 23b24b50b..06b427955 100644 --- a/server/private/lib/acmeCertSync.ts +++ b/server/private/lib/acmeCertSync.ts @@ -405,7 +405,8 @@ async function syncAcmeCerts(acmeJsonPath: string): Promise { existing[0].certFile, config.getRawConfig().server.secret! ); - if (storedCertPem === certPem) { + const wildcardUnchanged = existing[0].wildcard === wildcard; + if (storedCertPem === certPem && wildcardUnchanged) { // logger.debug( // `acmeCertSync: cert for ${domain} is unchanged, skipping` // ); From bacc1304536d192ea903da9994eddd6319b5f263 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 17:14:22 -0700 Subject: [PATCH 128/131] Clean up sign and verify --- .github/workflows/cicd.yml | 112 +++++++++---------------------------- 1 file changed, 27 insertions(+), 85 deletions(-) diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index befc96b17..7a9004ee8 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -414,28 +414,18 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Install cosign - # cosign is used to sign and verify container images (key and keyless) + # cosign is used to sign container images using keyless (OIDC) signing uses: sigstore/cosign-installer@cad07c2e89fa2edd6e2d7bab4c1aa38e53f76003 # v4.1.1 - - name: Dual-sign and verify (GHCR & Docker Hub) - # Sign each image by digest using keyless (OIDC) and key-based signing, - # then verify both the public key signature and the keyless OIDC signature. + - name: Sign (GHCR, keyless) + # Sign each GHCR image by digest using keyless (OIDC) signing via Sigstore/Rekor. + # Signatures are stored in the registry alongside the image. env: TAG: ${{ env.TAG }} - COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }} - COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }} - COSIGN_PUBLIC_KEY: ${{ secrets.COSIGN_PUBLIC_KEY }} COSIGN_YES: "true" run: | set -euo pipefail - issuer="https://token.actions.githubusercontent.com" - id_regex="^https://github.com/${{ github.repository }}/.+" # accept this repo (all workflows/refs) - - # Track failures - FAILED_TAGS=() - SUCCESSFUL_TAGS=() - # Determine if this is an RC release IS_RC="false" if [[ "$TAG" == *"-rc."* ]]; then @@ -463,95 +453,47 @@ jobs: ) fi - # Sign each image variant for both registries - for BASE_IMAGE in "${GHCR_IMAGE}" "${DOCKERHUB_IMAGE}"; do - for IMAGE_TAG in "${IMAGE_TAGS[@]}"; do - echo "Processing ${BASE_IMAGE}:${IMAGE_TAG}" - TAG_FAILED=false + FAILED_TAGS=() + SUCCESSFUL_TAGS=() - # Wrap the entire tag processing in error handling - ( - set -e - DIGEST="$(skopeo inspect --retry-times 3 docker://${BASE_IMAGE}:${IMAGE_TAG} | jq -r '.Digest')" - REF="${BASE_IMAGE}@${DIGEST}" - echo "Resolved digest: ${REF}" + for IMAGE_TAG in "${IMAGE_TAGS[@]}"; do + echo "Processing ${GHCR_IMAGE}:${IMAGE_TAG}" + TAG_FAILED=false - echo "==> cosign sign (keyless) --recursive ${REF}" - cosign sign --recursive "${REF}" + ( + set -e + DIGEST="$(skopeo inspect --retry-times 3 docker://${GHCR_IMAGE}:${IMAGE_TAG} | jq -r '.Digest')" + REF="${GHCR_IMAGE}@${DIGEST}" + echo "Resolved digest: ${REF}" - echo "==> cosign sign (key) --recursive ${REF}" - cosign sign --key env://COSIGN_PRIVATE_KEY --recursive "${REF}" + echo "==> cosign sign (keyless) --recursive ${REF}" + cosign sign --recursive "${REF}" + ) || TAG_FAILED=true - # Retry wrapper for verification to handle registry propagation delays - retry_verify() { - local cmd="$1" - local attempts=6 - local delay=5 - local i=1 - until eval "$cmd"; do - if [ $i -ge $attempts ]; then - echo "Verification failed after $attempts attempts" - return 1 - fi - echo "Verification not yet available. Retry $i/$attempts after ${delay}s..." - sleep $delay - i=$((i+1)) - delay=$((delay*2)) - # Cap the delay to avoid very long waits - if [ $delay -gt 60 ]; then delay=60; fi - done - return 0 - } - - echo "==> cosign verify (public key) ${REF}" - if retry_verify "cosign verify --key env://COSIGN_PUBLIC_KEY '${REF}' -o text"; then - VERIFIED_INDEX=true - else - VERIFIED_INDEX=false - fi - - echo "==> cosign verify (keyless policy) ${REF}" - if retry_verify "cosign verify --certificate-oidc-issuer '${issuer}' --certificate-identity-regexp '${id_regex}' '${REF}' -o text"; then - VERIFIED_INDEX_KEYLESS=true - else - VERIFIED_INDEX_KEYLESS=false - fi - - # Check if verification succeeded - if [ "${VERIFIED_INDEX}" != "true" ] && [ "${VERIFIED_INDEX_KEYLESS}" != "true" ]; then - echo "⚠️ WARNING: Verification not available for ${BASE_IMAGE}:${IMAGE_TAG}" - echo "This may be due to registry propagation delays. Continuing anyway." - fi - ) || TAG_FAILED=true - - if [ "$TAG_FAILED" = "true" ]; then - echo "⚠️ WARNING: Failed to sign/verify ${BASE_IMAGE}:${IMAGE_TAG}" - FAILED_TAGS+=("${BASE_IMAGE}:${IMAGE_TAG}") - else - echo "✓ Successfully signed and verified ${BASE_IMAGE}:${IMAGE_TAG}" - SUCCESSFUL_TAGS+=("${BASE_IMAGE}:${IMAGE_TAG}") - fi - done + if [ "$TAG_FAILED" = "true" ]; then + echo "⚠️ WARNING: Failed to sign ${GHCR_IMAGE}:${IMAGE_TAG}" + FAILED_TAGS+=("${GHCR_IMAGE}:${IMAGE_TAG}") + else + echo "✓ Successfully signed ${GHCR_IMAGE}:${IMAGE_TAG}" + SUCCESSFUL_TAGS+=("${GHCR_IMAGE}:${IMAGE_TAG}") + fi done - # Report summary echo "" echo "==========================================" - echo "Sign and Verify Summary" + echo "Sign Summary" echo "==========================================" echo "Successful: ${#SUCCESSFUL_TAGS[@]}" echo "Failed: ${#FAILED_TAGS[@]}" - echo "" if [ ${#FAILED_TAGS[@]} -gt 0 ]; then echo "Failed tags:" for tag in "${FAILED_TAGS[@]}"; do echo " - $tag" done - echo "" - echo "⚠️ WARNING: Some tags failed to sign/verify, but continuing anyway" + echo "⚠️ WARNING: Some tags failed to sign, but continuing anyway" else - echo "✓ All images signed and verified successfully!" + echo "✓ All images signed successfully!" fi shell: bash From 93b09de425d5fdc025ceafb8ce85de64b7ca16db Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 21:04:11 -0700 Subject: [PATCH 129/131] Adjust cloud api endpoints --- server/auth/actions.ts | 2 -- server/db/pg/schema/privateSchema.ts | 20 +++++++++++++++++ server/db/sqlite/schema/privateSchema.ts | 23 +++++++++++++++++++ server/private/routers/integration.ts | 28 ++++++++++-------------- 4 files changed, 55 insertions(+), 18 deletions(-) diff --git a/server/auth/actions.ts b/server/auth/actions.ts index 89ccd7e37..9ba1b5bce 100644 --- a/server/auth/actions.ts +++ b/server/auth/actions.ts @@ -122,8 +122,6 @@ export enum ActionsEnum { createOrgDomain = "createOrgDomain", deleteOrgDomain = "deleteOrgDomain", restartOrgDomain = "restartOrgDomain", - sendUsageNotification = "sendUsageNotification", - sendTrialNotification = "sendTrialNotification", createRemoteExitNode = "createRemoteExitNode", updateRemoteExitNode = "updateRemoteExitNode", getRemoteExitNode = "getRemoteExitNode", diff --git a/server/db/pg/schema/privateSchema.ts b/server/db/pg/schema/privateSchema.ts index 1aa2a1ef7..0f1914fad 100644 --- a/server/db/pg/schema/privateSchema.ts +++ b/server/db/pg/schema/privateSchema.ts @@ -566,6 +566,17 @@ export const alertWebhookActions = pgTable("alertWebhookActions", { lastSentAt: bigint("lastSentAt", { mode: "number" }) // nullable }); +export const trialNotifications = pgTable("trialNotifications", { + notificationId: serial("notificationId").primaryKey(), + subscriptionId: varchar("subscriptionId", { length: 255 }) + .notNull() + .references(() => subscriptions.subscriptionId, { + onDelete: "cascade" + }), + notificationType: varchar("notificationType", { length: 50 }).notNull(), // trial_ending_5d, trial_ending_24h, trial_ended + sentAt: bigint("sentAt", { mode: "number" }).notNull() +}); + export type Approval = InferSelectModel; export type Limit = InferSelectModel; export type Account = InferSelectModel; @@ -604,3 +615,12 @@ export type EventStreamingCursor = InferSelectModel< typeof eventStreamingCursors >; export type AlertResources = InferSelectModel; +export type AlertHealthChecks = InferSelectModel; +export type AlertSites = InferSelectModel; +export type AlertRules = InferSelectModel; +export type AlertEmailActions = InferSelectModel; +export type AlertEmailRecipients = InferSelectModel< + typeof alertEmailRecipients +>; +export type AlertWebhookActions = InferSelectModel; +export type TrialNotification = InferSelectModel; diff --git a/server/db/sqlite/schema/privateSchema.ts b/server/db/sqlite/schema/privateSchema.ts index 25a7b5bf5..05c917887 100644 --- a/server/db/sqlite/schema/privateSchema.ts +++ b/server/db/sqlite/schema/privateSchema.ts @@ -21,6 +21,9 @@ import { targetHealthCheck, users } from "./schema"; +import { serial, varchar } from "drizzle-orm/mysql-core"; +import { pgTable } from "drizzle-orm/pg-core"; +import { bigint } from "zod"; export const certificates = sqliteTable("certificates", { certId: integer("certId").primaryKey({ autoIncrement: true }), @@ -569,6 +572,19 @@ export const alertWebhookActions = sqliteTable("alertWebhookActions", { lastSentAt: integer("lastSentAt") }); +export const trialNotifications = sqliteTable("trialNotifications", { + notificationId: integer("notificationId").primaryKey({ + autoIncrement: true + }), + subscriptionId: text("subscriptionId") + .notNull() + .references(() => subscriptions.subscriptionId, { + onDelete: "cascade" + }), + notificationType: text("notificationType").notNull(), // trial_ending_5d, trial_ending_24h, trial_ended + sentAt: integer("sentAt").notNull() +}); + export type Approval = InferSelectModel; export type Limit = InferSelectModel; export type Account = InferSelectModel; @@ -601,3 +617,10 @@ export type EventStreamingCursor = InferSelectModel< typeof eventStreamingCursors >; export type AlertResources = InferSelectModel; +export type AlertHealthChecks = InferSelectModel; +export type AlertSites = InferSelectModel; +export type AlertRule = InferSelectModel; +export type AlertEmailAction = InferSelectModel; +export type AlertEmailRecipient = InferSelectModel; +export type AlertWebhookAction = InferSelectModel; +export type TrialNotification = InferSelectModel; diff --git a/server/private/routers/integration.ts b/server/private/routers/integration.ts index d5dac01e1..820a843f0 100644 --- a/server/private/routers/integration.ts +++ b/server/private/routers/integration.ts @@ -67,24 +67,20 @@ if (build == "saas") { verifyApiKeyIsRoot, certificates.syncCertToNewts ); + + authenticated.post( + `/org/:orgId/send-usage-notification`, + verifyApiKeyIsRoot, // We are the only ones who can use root key so its fine + org.sendUsageNotification + ); + + authenticated.post( + `/org/:orgId/send-trial-notification`, + verifyApiKeyIsRoot, + org.sendTrialNotification + ); } -authenticated.post( - `/org/:orgId/send-usage-notification`, - verifyApiKeyIsRoot, // We are the only ones who can use root key so its fine - verifyApiKeyHasAction(ActionsEnum.sendUsageNotification), - logActionAudit(ActionsEnum.sendUsageNotification), - org.sendUsageNotification -); - -authenticated.post( - `/org/:orgId/send-trial-notification`, - verifyApiKeyIsRoot, - verifyApiKeyHasAction(ActionsEnum.sendTrialNotification), - logActionAudit(ActionsEnum.sendTrialNotification), - org.sendTrialNotification -); - authenticated.delete( "/idp/:idpId", verifyApiKeyIsRoot, From 20fc59dcda36c98dbe2aca9049cc524be3ae6307 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 21:25:58 -0700 Subject: [PATCH 130/131] Delete trial when upgrading --- .../billing/hooks/handleSubscriptionCreated.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/server/private/routers/billing/hooks/handleSubscriptionCreated.ts b/server/private/routers/billing/hooks/handleSubscriptionCreated.ts index c7a47d1b7..947f28c14 100644 --- a/server/private/routers/billing/hooks/handleSubscriptionCreated.ts +++ b/server/private/routers/billing/hooks/handleSubscriptionCreated.ts @@ -174,6 +174,19 @@ export async function handleSubscriptionCreated( // TODO: update user in Sendy } } + + // delete the trial subscrition if we have one + await db + .delete(subscriptions) + .where( + and( + eq( + subscriptions.customerId, + subscription.customer as string + ), + eq(subscriptions.trial, true) + ) + ); } else if (type === "license") { logger.debug( `License subscription created for org ${customer.orgId}, no lifecycle handling needed.` From ae24eb2d2c811b21363e153c42976ba8c5cfd723 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 29 Apr 2026 21:31:02 -0700 Subject: [PATCH 131/131] Disable the alerts and hc when downgrading --- .../routers/billing/featureLifecycle.ts | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/server/private/routers/billing/featureLifecycle.ts b/server/private/routers/billing/featureLifecycle.ts index bc37271c0..6cb98ba5d 100644 --- a/server/private/routers/billing/featureLifecycle.ts +++ b/server/private/routers/billing/featureLifecycle.ts @@ -30,8 +30,10 @@ import { userOrgRoles, siteProvisioningKeyOrg, siteProvisioningKeys, + alertRules, + targetHealthCheck } from "@server/db"; -import { and, eq } from "drizzle-orm"; +import { and, eq, isNull } from "drizzle-orm"; /** * Get the maximum allowed retention days for a given tier @@ -318,6 +320,14 @@ async function disableFeature( await disableSiteProvisioningKeys(orgId); break; + case TierFeature.AlertingRules: + await disableAlertingRules(orgId); + break; + + case TierFeature.StandaloneHealthChecks: + await disableStandaloneHealthChecks(orgId); + break; + default: logger.warn( `Unknown feature ${feature} for org ${orgId}, skipping` @@ -360,8 +370,7 @@ async function disableFullRbac(orgId: string): Promise { async function disableSiteProvisioningKeys(orgId: string): Promise { const rows = await db .select({ - siteProvisioningKeyId: - siteProvisioningKeyOrg.siteProvisioningKeyId + siteProvisioningKeyId: siteProvisioningKeyOrg.siteProvisioningKeyId }) .from(siteProvisioningKeyOrg) .where(eq(siteProvisioningKeyOrg.orgId, orgId)); @@ -525,6 +534,29 @@ async function disablePasswordExpirationPolicies(orgId: string): Promise { logger.info(`Disabled password expiration policies for org ${orgId}`); } +async function disableAlertingRules(orgId: string): Promise { + await db + .update(alertRules) + .set({ enabled: false }) + .where(eq(alertRules.orgId, orgId)); + + logger.info(`Disabled all alert rules for org ${orgId}`); +} + +async function disableStandaloneHealthChecks(orgId: string): Promise { + await db + .update(targetHealthCheck) + .set({ hcEnabled: false }) + .where( + and( + eq(targetHealthCheck.orgId, orgId), + isNull(targetHealthCheck.targetId) + ) + ); + + logger.info(`Disabled standalone health checks for org ${orgId}`); +} + async function disableAutoProvisioning(orgId: string): Promise { // Get all IDP IDs for this org through the idpOrg join table const orgIdps = await db